interface DataRows {
  id: string; //*Id การยื่นขอลา
  leaveTypeName: string | null; //Name ประเภทการลา
  leaveTypeId: string; //Id ประเภทการลา
  fullName: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา
  dateSendLeave: string | null; //วันที่ยื่นใบลา
  status: string | null; //ส
}
interface ListLeave {
  id: string; //*Id การยื่นขอลา
  leaveTypeName: string | null; //Name ประเภทการลา
  leaveTypeId: string; //Id ประเภทการลา
  fullName: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา
  dateSendLeave: Date | null; //วันที่ยื่นใบลา
  status: string | null; //ส
  leaveSubTypeName: string; //ส
  leaveRange: string; //ส
  leaveRangeEnd: string; //ส
  citizenId?: string;
  leaveStartDate?: Date | null;
  leaveEndDate?: Date | null;
  agency?: string;
  profileType?: string;
  org?: string;
  position?: string;
  level?: string;
  hajjDayStatus?: boolean;
  leaveTotal: number; //จำนวนวันที่ลา
}
interface FormData {
  id: string;
  leaveType: string;
  name: string;
  Date: string;
  status: string;
}

interface RowsType {
  commanders: SeqTypeRow[];
  approvers: SeqTypeRow[];
}
interface SeqTypeRow {
  seq: number;
  prefix: string;
  firstName: string;
  lastName: string;
  positionName: string;
  positionSign?: string;
  profileId: string;
  keycloakId: string;
  approveStatus: string;
  comment: string;
}
interface DataDateMonthObject {
  month: number;
  year: number;
}
interface LeaveType {
  code: string;
  createdAt: Date;
  createdFullName: string;
  createdUserId: string;
  id: string;
  lastUpdateFullName: string;
  lastUpdateUserId: string;
  lastUpdatedAt: Date | null;
  limit: Number;
  name: string;
}

interface FormReject {
  id: string; //*Id การยื่นขอลา
  leaveTypeName: string; //Name ประเภทการลา
  fullName: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา
  status: string; //สถานะการของลา
  leaveDocDelete: string; //เอกสารการยกเลิกการลา
  leaveReasonDelete: string; //เหตุผลการยกเลิกการลา
  leaveWrote: string; //เขียนที่
  leaveAddress: string; //สถานที่ติดต่อขณะลา
  leaveNumber: string; //หมายเลขที่ติดต่อขณะลา
  leaveDetail: string; //รายละเอียดการลา
  leaveTotal: number; //จำนวนวันที่ลา
  leaveStartDate: Date; //วัน เดือน ปีเริ่มต้นลา
  leaveEndDate: Date; //วัน เดือน ปีสิ้นสุดลา
  leaveDirectorComment?: string; //ความคิดเห็นของผู้บังคับบัญชา
}

interface ResCalendar {
  dateSendLeave: Date;
  fullName: string;
  id: string;
  keycloakId: string;
  leaveEndDate: Date;
  leaveStartDate: Date;
  leaveTypeId: string;
  leaveTypeName: string;
  status: string;
}

export type {
  DataRows,
  FormData,
  DataDateMonthObject,
  ListLeave,
  LeaveType,
  FormReject,
  ResCalendar,
  SeqTypeRow,
  RowsType,
};
