namespace ERPCore.Dtos.Hrm;

public sealed record AttendanceSummaryRowDto(
    int EmployeeId, string EmployeeCode, string EmployeeName, string? DepartmentName,
    int PresentDays, int AbsentDays, int LeaveDays, int HalfDays, int OtMinutesTotal, int LateMinutesTotal);

public sealed record OvertimeReportRowDto(
    int EmployeeId, string EmployeeCode, string EmployeeName, DateTime AttendanceDate, int OvertimeMinutes);

public sealed record LateArrivalReportRowDto(
    int EmployeeId, string EmployeeCode, string EmployeeName, DateTime AttendanceDate, int LateMinutes);

public sealed record PayrollRegisterRowDto(
    int PayrollLineId, int EmployeeId, string EmployeeCode, string EmployeeName,
    decimal GrossSalary, decimal TotalDeductions, decimal NetSalary);

public sealed record SalaryHistoryRowDto(
    int EmployeeSalaryStructureId, DateTime EffectiveFrom, DateTime? EffectiveTo, decimal BasicSalary, string Status);

public sealed record LeaveBalanceReportRowDto(
    int EmployeeId, string EmployeeCode, string EmployeeName, string LeaveTypeName,
    decimal EntitledDays, decimal TakenDays, decimal RemainingDays);

public sealed record DocumentExpiryReportRowDto(
    int EmployeeDocumentId, int EmployeeId, string EmployeeCode, string EmployeeName,
    string DocumentTypeName, DateTime ExpiryDate, int DaysUntilExpiry);
