/**
 * 考勤相关类型定义
 * 数据结构符合后续API接口规范
 */

/**
 * 考勤状态枚举
 */
export enum AttendanceStatus {
  NORMAL = 'normal',         // 正常
  LATE = 'late',             // 迟到
  EARLY_LEAVE = 'early',     // 早退
  ABSENT = 'absent'          // 缺勤
}

/**
 * 考勤统计数据
 */
export interface AttendanceStats {
  attendanceRate: number    // 出勤率（如：100表示100%）
  normalDays: number        // 正常出勤天数
  lateCount: number         // 迟到次数
  earlyLeaveCount: number   // 早退次数
  absentCount: number       // 缺勤次数
}

/**
 * 打卡记录
 */
export interface AttendanceRecord {
  date: string              // 日期（如：2023-11-25）
  weekday: string           // 星期（如：星期六）
  checkInTime: string       // 上班打卡时间（如：08:30）
  checkOutTime: string      // 下班打卡时间（如：17:30，未打卡为--:--）
  status: AttendanceStatus  // 打卡状态
}

/**
 * 月份选择器属性
 */
export interface MonthSelectorProps {
  currentMonth: string      // 当前年月显示（如：2023年11月）
  onPreviousMonth: () => void
  onNextMonth: () => void
  onMonthChange?: (year: number, month: number) => void  // Picker选择变化回调
}

/**
 * 考勤日历属性
 */
export interface AttendanceCalendarProps {
  year: number
  month: number
  attendanceRecords: AttendanceRecord[]
}

/**
 * 考勤统计卡片属性
 */
export interface AttendanceStatsProps {
  stats: AttendanceStats
}

/**
 * 打卡明细列表属性
 */
export interface AttendanceDetailsProps {
  records: AttendanceRecord[]
}

/**
 * 打卡记录项属性
 */
export interface AttendanceRecordItemProps {
  record: AttendanceRecord
}
