/**
 * 角色相关类型定义 - 匹配后端 ModelRole
 */

import { PaginationParams } from './common'

// 角色类型
export enum RoleType {
  PLATFORM = 1, // 平台角色
  CUSTOMER = 2 // 客户角色
}

// 角色状态
export enum RoleStatus {
  ENABLED = 1, // 启用
  DISABLED = 0 // 禁用
}

// 角色实体（匹配后端 ModelRole）
export interface PlatformRole {
  ID: number
  CreatedAt?: string
  UpdatedAt?: string
  DeletedAt?: string | null
  creator: number // 创建人ID
  updater: number // 更新人ID
  role_name: string // 角色名称
  role_desc: string // 角色描述
  role_type: RoleType // 角色类型
  status: RoleStatus // 状态
  credit_enabled?: boolean // 新建代理默认信用是否启用（仅客户角色）
  credit_limit?: number // 新建代理默认信用额度（分，仅客户角色）
}

// 角色查询参数
export interface RoleQueryParams extends PaginationParams {
  role_name?: string
  role_type?: RoleType
  status?: RoleStatus
}

// 创建/编辑角色参数
export interface PlatformRoleFormData {
  role_name: string
  role_desc: string
  role_type: RoleType
  status: RoleStatus
}

// 更新客户角色默认信用参数
export interface UpdateRoleDefaultCreditRequest {
  credit_enabled: boolean
  credit_limit: number
}
