/**
 * TodayIssue 관련 타입 정의
 * API: api/app/Swagger/v1/TodayIssueApi.php 참조
 */

/** 알림 뱃지 타입 (헤더 알림용) */
export type TodayIssueBadge =
  | '수주등록'
  | '추심이슈'
  | '안전재고'
  | '지출 승인대기'
  | '세금 신고'
  | '결재 요청'
  | '신규거래처';

/** 알림 설정 타입 */
export type NotificationType =
  | 'sales_order'      // 수주등록
  | 'new_vendor'       // 신규거래처
  | 'approval_request' // 결재 요청
  | 'bad_debt'         // 추심이슈
  | 'safety_stock'     // 안전재고
  | 'expected_expense' // 지출 승인대기
  | 'vat_report';      // 세금 신고

/**
 * 읽지 않은 이슈 항목 (헤더 알림용)
 * TodayIssueUnreadItem 스키마
 */
export interface TodayIssueUnreadItem {
  id: number;
  badge: TodayIssueBadge;
  notification_type: NotificationType;
  content: string;
  path: string | null;
  needs_approval: boolean;
  time: string;
  created_at: string; // ISO 8601
}

/**
 * 읽지 않은 이슈 목록 응답
 * TodayIssueUnreadResponse 스키마
 */
export interface TodayIssueUnreadResponse {
  items: TodayIssueUnreadItem[];
  total: number;
}

/**
 * 읽지 않은 이슈 개수 응답
 * TodayIssueUnreadCountResponse 스키마
 */
export interface TodayIssueUnreadCountResponse {
  count: number;
}

/**
 * 모든 이슈 읽음 처리 응답
 * TodayIssueMarkAllReadResponse 스키마
 */
export interface TodayIssueMarkAllReadResponse {
  count: number;
}

/** API 응답 공통 래퍼 */
export interface ApiResponse<T> {
  success: boolean;
  message: string;
  data: T;
  /** 인증 에러 여부 (토큰 만료 등) */
  authError?: boolean;
}