using Microsoft.AspNetCore.Http; using Rs_system.Models.ViewModels; namespace Rs_system.Services; public interface IMiembroService { /// /// Gets all active members with their work group information /// Task> GetAllAsync(); /// /// Gets a member by ID /// Task GetByIdAsync(long id); /// /// Creates a new member /// Task CreateAsync(MiembroViewModel viewModel, string createdBy, IFormFile? fotoFile = null); /// /// Updates an existing member /// Task UpdateAsync(long id, MiembroViewModel viewModel, IFormFile? fotoFile = null); /// /// Soft deletes a member /// Task DeleteAsync(long id); /// /// Gets all active work groups for dropdown /// Task> GetGruposTrabajoAsync(); /// /// Imports members from a CSV stream /// /// The stream of the CSV file /// The user creating the members /// A tuple with success count and a list of error messages Task<(int SuccessCount, List Errors)> ImportarMiembrosAsync(Stream csvStream, string createdBy); /// /// Gets paginated members with optional search /// /// Current page number (1-based) /// Number of items per page /// Optional search query to filter by name /// Paginated result with members Task> GetPaginatedAsync(int page, int pageSize, string? searchQuery = null); }