/**
 * 签约类型
 */
export type ContractType = 'personal' | 'company';

/**
 * 账户类型
 */
export type AccountType = 'company' | 'personal';

/**
 * 店铺类型
 */
export type ShopType = 'hotel' | 'homestay' | 'apartment' | 'hostel';

/**
 * 店铺类型选项
 */
export interface ShopTypeOption {
  value: ShopType;
  label: string;
  emoji: string;
  desc: string;
}

/**
 * 店铺表单数据
 */
export interface ShopFormData {
  // 基本信息
  shopName: string;
  shopType: ShopType; // 店铺类型
  phone: string;
  province: string;
  city: string;
  district: string;
  address: string;
  description: string;
  coverImage: string; // 店铺封面
  storeLicense: string; // 门店营业执照

  // 酒店照片
  hotelImages: string[];

  // 签约资料
  contractType: ContractType;
  idCardFront: string; // 个人身份证正面
  idCardBack: string; // 个人身份证反面
  legalIdCardFront: string; // 法人身份证正面
  legalIdCardBack: string; // 法人身份证反面
  businessLicense: string; // 营业执照
  licenseNo: string; // 营业执照编号
  legalPerson: string; // 法人姓名

  // 财务信息
  accountType: AccountType;
  accountName: string; // 开户名（对私）
  bankAccount: string; // 银行账号
  bankName: string; // 银行名称
  bankBranch: string; // 支行信息（对私）
  bankLicense: string; // 开户营业执照（对公）
  accountIdCardFront: string; // 开户身份证正面（对私）
  accountIdCardBack: string; // 开户身份证反面（对私）
}

/**
 * 店铺申请提交数据
 */
export interface ShopApplyData {
  // 基本信息
  shopName: string;
  shopType: ShopType;
  phone: string;
  province: string;
  city: string;
  district: string;
  address: string;
  description: string;
  coverImage: string;
  storeLicense: string;

  // 酒店照片（逗号分隔的字符串）
  hotelImages: string;

  // 签约资料
  contractType: ContractType;
  idCardFront: string;
  idCardBack: string;
  legalIdCardFront: string;
  legalIdCardBack: string;
  businessLicense: string;
  licenseNo: string;
  legalPerson: string;

  // 财务信息
  accountType: AccountType;
  accountName: string;
  bankAccount: string;
  bankName: string;
  bankBranch: string;
  bankLicense: string;
  accountIdCardFront: string;
  accountIdCardBack: string;
}

/**
 * 地区选择器变化事件数据
 */
export interface RegionChangeData {
  province: string;
  city: string;
  district: string;
}
