import type { BaseDTO, BaseVO } from 'shared/types'

// ==================== DTO ====================

/**
 * 客服人员配置表数据对象DTO
 */
export interface TbCustomerServiceDTO extends BaseDTO {
    /** 员工ID（关联sys用户ID） */
    userId?: string
    /** 员工姓名 */
    username?: string
    /** 员工工号 */
    userCode?: string
    /** 状态：online-在线 busy-忙碌 offline-离线 */
    status?: string
    /** 技能标签 */
    skillTags?: string[]
    /** 最大并发接待数 */
    maxConcurrent?: number
    /** 当前工作量 */
    currentWorkload?: number
    /** 累计服务次数 */
    totalServed?: number
    /** 平均响应时间（秒） */
    avgResponseTime?: number
    /** 满意度评分（0-5） */
    satisfactionScore?: number
}

// ==================== VO ====================

/**
 * 客服人员配置VO
 * 用于前端展示客服人员信息
 */
export interface CustomerServiceVO extends BaseVO {
    /** 员工ID（关联sys用户ID） */
    userId?: string
    /** 员工姓名 */
    username?: string
    /** 员工工号 */
    userCode?: string
    /** 员工头像 */
    avatar?: string
    /** 状态：online-在线 busy-忙碌 offline-离线 */
    status?: string
    /** 状态名称 */
    statusName?: string
    /** 技能标签 */
    skillTags?: string[]
    /** 最大并发接待数 */
    maxConcurrent?: number
    /** 当前工作量 */
    currentWorkload?: number
    /** 累计服务次数 */
    totalServed?: number
    /** 平均响应时间（秒） */
    avgResponseTime?: number
    /** 平均响应时间（格式化） */
    avgResponseTimeFormatted?: string
    /** 满意度评分（0-5） */
    satisfactionScore?: number
    /** 是否可接待（工作量未满） */
    isAvailable?: boolean
}

/**
 * 客户信息VO
 * 用于前端展示客户信息
 */
export interface CustomerVO extends BaseVO {
    /** 客户ID */
    customerId?: string
    /** 客户编号 */
    customerNo?: string
    /** 客户姓名 */
    customerName?: string
    /** 客户类型 */
    customerType?: string
    /** 客户类型名称 */
    customerTypeName?: string
    /** 公司名称 */
    companyName?: string
    /** 电话 */
    phone?: string
    /** 邮箱 */
    email?: string
    /** 微信OpenID */
    wechatOpenid?: string
    /** 头像URL */
    avatar?: string
    /** 性别 */
    gender?: number
    /** 性别名称 */
    genderName?: string
    /** 地址 */
    address?: string
    /** 客户等级 */
    customerLevel?: string
    /** 客户等级名称 */
    customerLevelName?: string
    /** 客户来源 */
    customerSource?: string
    /** 客户来源名称 */
    customerSourceName?: string
    /** 客户标签 */
    tags?: string[]
    /** 备注 */
    notes?: string
    /** CRM系统客户ID */
    crmCustomerId?: string
    /** 最后联系时间 */
    lastContactTime?: string
    /** 咨询总次数 */
    totalConsultations?: number
    /** 订单总数 */
    totalOrders?: number
    /** 总消费金额 */
    totalAmount?: number
    /** 满意度评分 */
    satisfactionScore?: number
    /** 状态 */
    status?: string
    /** 状态名称 */
    statusName?: string
    /** 状态颜色 */
    statusColor?: string
    /** 创建者姓名 */
    creatorName?: string
    /** 更新者姓名 */
    updaterName?: string
}
