using MTWorkHR.Application.Models;
using MTWorkHR.Core.Entities;
using MTWorkHR.Infrastructure.Entities;
using System.Threading.Tasks;

namespace MTWorkHR.Application.Services.Interfaces
{
    public interface IContractService : IService<Contract, ContractDto, ContractDto>
    {
        Task<PagingResultDto<ContractDto>> GetAll(ContractPagingInputDto PagingInputDto);
        Task<PagingResultDto<ContractAllHRDto>> GetAllForHr(ContractPagingInputDto PagingInputDto);
        Task<bool> ChangeStatus(long contractId, int statusId);
        Task<ContractHRDto> GetByIdHRDetails(long id);


        Task<ContractDetail> GetByIdReport(long id);

        Task<AttachmentResponseDto> GenerateContractPdf(string outputPath, long contractId);

        byte[] generatePdfTest();
    }
}