/**
 * 微信支付配置管理相关类型定义
 */

// 支付渠道类型
export type PaymentProviderType = 'wechat' | 'wechat_v2' | 'fuiou'

// 微信支付配置
export interface WechatConfig {
  id: number
  name: string
  description: string
  provider_type: PaymentProviderType
  is_active: boolean

  // 小程序配置
  miniapp_app_id: string
  miniapp_app_secret: string

  // 公众号配置
  oa_app_id: string
  oa_app_secret: string
  oa_token: string
  oa_aes_key: string
  oa_oauth_redirect_url: string

  // 微信支付配置
  wx_mch_id: string
  wx_api_v2_key: string
  wx_api_v3_key: string
  wx_notify_url: string
  wx_serial_no: string
  wx_cert_content: string
  wx_key_content: string

  // 富友支付配置
  fy_api_url: string
  fy_ins_cd: string
  fy_mchnt_cd: string
  fy_term_id: string
  fy_notify_url: string
  fy_private_key: string
  fy_public_key: string

  created_at: string
  updated_at: string
}

// 查询参数
export interface WechatConfigQueryParams {
  page?: number
  page_size?: number
  provider_type?: PaymentProviderType
  is_active?: boolean
}

// 列表响应
export interface WechatConfigListResponse {
  items: WechatConfig[]
  page: number
  page_size: number
  total: number
}

// 创建微信支付配置请求
export interface CreateWechatConfigRequest {
  name: string
  provider_type: PaymentProviderType
  description?: string

  // 小程序配置
  miniapp_app_id?: string
  miniapp_app_secret?: string

  // 公众号配置
  oa_app_id?: string
  oa_app_secret?: string
  oa_token?: string
  oa_aes_key?: string
  oa_oauth_redirect_url?: string

  // 微信支付配置
  wx_mch_id?: string
  wx_api_v2_key?: string
  wx_api_v3_key?: string
  wx_notify_url?: string
  wx_serial_no?: string
  wx_cert_content?: string
  wx_key_content?: string

  // 富友支付配置
  fy_api_url?: string
  fy_ins_cd?: string
  fy_mchnt_cd?: string
  fy_term_id?: string
  fy_notify_url?: string
  fy_private_key?: string
  fy_public_key?: string
}

// 更新微信支付配置请求
export interface UpdateWechatConfigRequest {
  name?: string
  description?: string
  provider_type?: PaymentProviderType

  // 小程序配置
  miniapp_app_id?: string
  miniapp_app_secret?: string

  // 公众号配置
  oa_app_id?: string
  oa_app_secret?: string
  oa_token?: string
  oa_aes_key?: string
  oa_oauth_redirect_url?: string

  // 微信支付配置
  wx_mch_id?: string
  wx_api_v2_key?: string
  wx_api_v3_key?: string
  wx_notify_url?: string
  wx_serial_no?: string
  wx_cert_content?: string
  wx_key_content?: string

  // 富友支付配置
  fy_api_url?: string
  fy_ins_cd?: string
  fy_mchnt_cd?: string
  fy_term_id?: string
  fy_notify_url?: string
  fy_private_key?: string
  fy_public_key?: string
}
