package com.centreproject.system.domain.kpi.concierge;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 礼宾部KPI指标表（Concierge KPI Metrics）
 * 对应大屏展示的部门业绩数据
 * @author zhonglei.xu
 */
@Data
@TableName("kpi_concierge")
public class KpiConcierge {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 部门编码（MD、MX、DCT、YAM等）
     */
    @TableField("department")
    private String department;

    /**
     * 统计日期（按日统计）
     */
    @TableField("date")
    private LocalDateTime date;

    /**
     *  revenue_generated：营收（AED）
     */
    @TableField("revenue_generated")
    private Integer revenueGenerated;

    /**
     * call_sla：呼叫服务水平协议达成率（百分比，如80.00%）
     */
    @TableField("call_sla")
    private BigDecimal callSla;

    /**
     * call_offered：呼入总量
     */
    @TableField("call_offered")
    private Integer callOffered;

    /**
     * call_waiting：等待呼叫数
     */
    @TableField("call_waiting")
    private Integer callWaiting;

    /**
     * call_capacity：呼叫处理能力
     */
    @TableField("call_capacity")
    private Integer callCapacity;

    /**
     * call_occupancy：呼叫占用率（百分比，如29%）
     */
    @TableField("call_occupancy")
    private Integer callOccupancy;

    /**
     * call_abandonment：呼叫放弃数
     */
    @TableField("call_abandonment")
    private Integer callAbandonment;

    /**
     * call_aht：平均处理时长（分钟，如30mins）
     */
    @TableField("call_aht")
    private Integer callAht;

    /**
     * call_cast：呼叫成本（AED/通，如4.50）
     */
    @TableField("call_cast")
    private BigDecimal callCast;

    /**
     * chatbot_sla：聊天机器人服务水平协议达成率（百分比，如80.00%）
     */
    @TableField("chatbot_sla")
    private BigDecimal chatbotSla;

    /**
     * chatbot_contacts_offered：聊天机器人交互总量
     */
    @TableField("chatbot_contacts_offered")
    private Integer chatbotContactsOffered;

    /**
     * chatbot_transfers：聊天机器人转人工数
     */
    @TableField("chatbot_transfers")
    private Integer chatbotTransfers;

    /**
     * 数据同步时间
     */
    @TableField(value = "synch_time", fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime synchTime;

    /**
     * 同步追踪ID（用于数据一致性校验）
     */
    @TableField("sync_trace_id")
    private String syncTraceId;

    @TableField(exist = false)
    private String day;
}