/**
 * 알림 설정 타입 정의
 */

// 개별 알림 항목 설정
export interface NotificationItem {
  enabled: boolean;
  email: boolean;
}

// 공지 알림 설정
export interface NoticeNotificationSettings {
  enabled: boolean; // 섹션 전체 토글
  notice: NotificationItem; // 공지사항 알림
  event: NotificationItem; // 이벤트 알림
}

// 일정 알림 설정
export interface ScheduleNotificationSettings {
  enabled: boolean;
  vatReport: NotificationItem; // 부가세 신고 알림
  incomeTaxReport: NotificationItem; // 종합소득세 신고 알림
}

// 거래처 알림 설정
export interface VendorNotificationSettings {
  enabled: boolean;
  newVendor: NotificationItem; // 신규 업체 등록 알림
  creditRating: NotificationItem; // 신용등급 등록 알림
}

// 근태 알림 설정
export interface AttendanceNotificationSettings {
  enabled: boolean;
  annualLeave: NotificationItem; // 연차 알림
  clockIn: NotificationItem; // 출근 알림
  late: NotificationItem; // 지각 알림
  absent: NotificationItem; // 결근 알림
}

// 수주/발주 알림 설정
export interface OrderNotificationSettings {
  enabled: boolean;
  salesOrder: NotificationItem; // 수주 등록 알림
  purchaseOrder: NotificationItem; // 발주 알림
}

// 전자결재 알림 설정
export interface ApprovalNotificationSettings {
  enabled: boolean;
  approvalRequest: NotificationItem; // 결재요청 알림
  draftApproved: NotificationItem; // 기안 > 승인 알림
  draftRejected: NotificationItem; // 기안 > 반려 알림
  draftCompleted: NotificationItem; // 기안 > 완료 알림
}

// 생산 알림 설정
export interface ProductionNotificationSettings {
  enabled: boolean;
  safetyStock: NotificationItem; // 안전재고 알림
  productionComplete: NotificationItem; // 생산완료 알림
}

// 전체 알림 설정
export interface NotificationSettings {
  notice: NoticeNotificationSettings;
  schedule: ScheduleNotificationSettings;
  vendor: VendorNotificationSettings;
  attendance: AttendanceNotificationSettings;
  order: OrderNotificationSettings;
  approval: ApprovalNotificationSettings;
  production: ProductionNotificationSettings;
}

// 기본값
export const DEFAULT_NOTIFICATION_ITEM: NotificationItem = {
  enabled: false,
  email: false,
};

export const DEFAULT_NOTIFICATION_SETTINGS: NotificationSettings = {
  notice: {
    enabled: false,
    notice: { enabled: false, email: false },
    event: { enabled: true, email: false },
  },
  schedule: {
    enabled: false,
    vatReport: { enabled: false, email: false },
    incomeTaxReport: { enabled: true, email: false },
  },
  vendor: {
    enabled: false,
    newVendor: { enabled: false, email: false },
    creditRating: { enabled: true, email: false },
  },
  attendance: {
    enabled: false,
    annualLeave: { enabled: false, email: false },
    clockIn: { enabled: true, email: false },
    late: { enabled: false, email: false },
    absent: { enabled: true, email: false },
  },
  order: {
    enabled: false,
    salesOrder: { enabled: false, email: false },
    purchaseOrder: { enabled: true, email: false },
  },
  approval: {
    enabled: false,
    approvalRequest: { enabled: false, email: false },
    draftApproved: { enabled: true, email: false },
    draftRejected: { enabled: false, email: false },
    draftCompleted: { enabled: true, email: false },
  },
  production: {
    enabled: false,
    safetyStock: { enabled: false, email: false },
    productionComplete: { enabled: true, email: false },
  },
};