import { CrmGiftApplyDetailVO } from '@/api/oa/crm/crmGiftApplyDetail/types';

export interface CrmGiftApplyVO {
  /**
   * 申请单ID
   */
  giftApplyId: string | number;

  /**
   * 礼品申请编号
   */
  applicationCode: string;

  /**
   * 申请人ID
   */
  applicantId: string | number;

  /**
   * 申请人姓名
   */
  applicantName: string;

  /**
   * 申请人所属部门ID
   */
  applicantDeptId: string | number;

  /**
   * 申请人所属部门名称
   */
  applicantDeptName: string;

  /**
   * 申请日期
   */
  applicationDate: string;

  /**
   * 客户ID
   */
  customerUnitId: string | number;

  /**
   * 客户名称
   */
  customerUnitName: string;

  /**
   * 客人姓名
   */
  guestName: string;

  /**
   * 人数
   */
  peopleCount: number;

  /**
   * 申请事由
   */
  applicationReason: string;

  /**
   * 领用人ID
   */
  recipientId: string | number;

  /**
   * 领用人姓名
   */
  recipientName: string;

  /**
   * 领用日期
   */
  recipientDate: string;

  /**
   * 申请总金额
   */
  totalAmount: number;

  /**
   * 礼品申请状态(1暂存 2审批中 3已审批 4作废)
   */
  applicationStatus: string;

  /**
   * 流程状态
   */
  flowStatus: string;

  /**
   * 备注
   */
  remark: string;

  /**
   * 创建时间
   */
  createTime?: string;

  /**
   * 更新时间
   */
  updateTime?: string;

  /**
   * 礼品申请明细列表
   */
  detailList?: CrmGiftApplyDetailVO[];
}

// CrmGiftApplyDetailVO 从 crmGiftApplyDetail/types.ts 导入，避免重复定义
export type { CrmGiftApplyDetailVO };

export interface CrmGiftApplyForm extends BaseEntity {
  /**
   * 申请单ID
   */
  giftApplyId?: string | number;

  /**
   * 礼品申请编号
   */
  applicationCode?: string;

  /**
   * 申请人ID
   */
  applicantId?: string | number;

  /**
   * 申请人姓名
   */
  applicantName?: string;

  /**
   * 申请人所属部门ID
   */
  applicantDeptId?: string | number;

  /**
   * 申请人所属部门名称
   */
  applicantDeptName?: string;

  /**
   * 申请日期
   */
  applicationDate?: string;

  /**
   * 客户ID
   */
  customerUnitId?: string | number;

  /**
   * 客户名称
   */
  customerUnitName?: string;

  /**
   * 客人姓名
   */
  guestName?: string;

  /**
   * 人数
   */
  peopleCount?: number;

  /**
   * 申请事由
   */
  applicationReason?: string;

  /**
   * 领用人ID
   */
  recipientId?: string | number;

  /**
   * 领用人姓名
   */
  recipientName?: string;

  /**
   * 领用日期
   */
  recipientDate?: string;

  /**
   * 申请总金额
   */
  totalAmount?: number;

  /**
   * 礼品申请状态(1暂存 2审批中 3已审批 4作废)
   */
  applicationStatus?: string;

  /**
   * 流程状态
   */
  flowStatus?: string;

  /**
   * 备注
   */
  remark?: string;

  // ==================== 流程相关字段 ====================

  /**
   * 流程定义编码
   */
  flowCode?: string;

  /**
   * 流程变量
   */
  variables?: any;

  /**
   * 流程业务扩展信息
   */
  bizExt?: any;

  // ==================== 子表数据 ====================

  /**
   * 礼品申请明细列表
   */
  detailList?: CrmGiftApplyDetailVO[];
}

export interface CrmGiftApplyQuery extends PageQuery {
  /**
   * 礼品申请编号
   */
  applicationCode?: string;

  /**
   * 申请人ID
   */
  applicantId?: string | number;

  /**
   * 申请人姓名
   */
  applicantName?: string;

  /**
   * 申请人所属部门ID
   */
  applicantDeptId?: string | number;

  /**
   * 申请人所属部门名称
   */
  applicantDeptName?: string;

  /**
   * 申请日期
   */
  applicationDate?: string;

  /**
   * 客户ID
   */
  customerUnitId?: string | number;

  /**
   * 客户名称
   */
  customerUnitName?: string;

  /**
   * 客人姓名
   */
  guestName?: string;

  /**
   * 人数
   */
  peopleCount?: number;

  /**
   * 申请事由
   */
  applicationReason?: string;

  /**
   * 领用人ID
   */
  recipientId?: string | number;

  /**
   * 领用人姓名
   */
  recipientName?: string;

  /**
   * 领用日期
   */
  recipientDate?: string;

  /**
   * 申请总金额
   */
  totalAmount?: number;

  /**
   * 礼品申请状态(1暂存 2审批中 3已审批 4作废)
   */
  applicationStatus?: string;

  /**
   * 流程状态
   */
  flowStatus?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}
