namespace F9WebAiTest.Application.Dtos.Attendance; public class AttendanceDto { public long Id { get; set; } public long EmployeeId { get; set; } public string EmployeeName { get; set; } public string DepartmentName { get; set; } public DateTime WorkDate { get; set; } public DateTime? SignInTime { get; set; } public DateTime? SignOutTime { get; set; } public string SignInStatus { get; set; } public string SignOutStatus { get; set; } public string Remark { get; set; } } public class PunchResultDto { public string Type { get; set; } // signIn / signOut public DateTime Time { get; set; } public string Status { get; set; } // 正常/迟到/早退 public string Message { get; set; } } public class AttendanceQueryDto { public string Date { get; set; } = ""; // yyyy-MM-dd public long? DepartmentId { get; set; } public string Keyword { get; set; } = ""; public int PageIndex { get; set; } = 1; public int PageSize { get; set; } = 10; } public class AttendanceSummaryDto { public int NormalDays { get; set; } public int LateDays { get; set; } public int EarlyLeaveDays { get; set; } public int AbsentDays { get; set; } public int LeaveDays { get; set; } public int TotalDays { get; set; } } public class LeaveRequestDto { public long Id { get; set; } public long EmployeeId { get; set; } public string EmployeeName { get; set; } public string DepartmentName { get; set; } public string Type { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } public string Reason { get; set; } public string Status { get; set; } public int CurrentOrderNo { get; set; } // 当前审批到第几步 public string ApproverName { get; set; } public string ApproveRemark { get; set; } public DateTime? ApprovedAt { get; set; } public DateTime CreatedAt { get; set; } public List Approvers { get; set; } = new(); // 审批流程节点 } public class LeaveApproverDto { public long Id { get; set; } public long ApproverId { get; set; } public string ApproverName { get; set; } public int OrderNo { get; set; } // 序号(审批顺序) public string Status { get; set; } // 待审批/已批准/已驳回 public string ApproveRemark { get; set; } public DateTime? ApprovedAt { get; set; } } public class CreateLeaveDto { public string Type { get; set; } = "事假"; public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } public string Reason { get; set; } = ""; public List ApproverIds { get; set; } = new(); // 审批人ID列表(顺序=审批顺序) } public class ApproveLeaveDto { public bool Approved { get; set; } public string Remark { get; set; } = ""; }