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

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

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

/**
 * 社交媒体情感分析KPI表实体类
 * 对应表：kpi_social_media_sentimental
 * @author zhonglei.xu
 */
@Data
@TableName("kpi_social_media_sentimental")
public class KpiSocialMediaSentimental {

    /**
     * 主键ID
     * 对应字段：id (AUTO_INCREMENT)
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 园区编码（如YI、SWAD、Etiha）
     * 对应字段：park_code (NOT NULL)
     */
    @TableField("park_code")
    private String parkCode;

    /**
     * 统计日期
     * 对应字段：date (NOT NULL)
     */
    @TableField("date")
    private LocalDateTime date;

    /**
     * Google评分（1-5分，存储整数如47代表4.7分）
     * 对应字段：google_review (DEFAULT 0)
     */
    @TableField("google_review")
    private BigDecimal googleReview;

    /**
     * TripAdvisor评分（1-5分，存储整数如48代表4.8分）
     * 对应字段：trip_advisor (DEFAULT 0)
     */
    @TableField("trip_advisor")
    private BigDecimal tripAdvisor;

    /**
     * Google评价关键词（用于词云分析）
     * 对应字段：google_evaluation_word (TEXT)
     */
    @TableField("google_evaluation_word")
    private String googleEvaluationWord;

    /**
     * TripAdvisor评价关键词（用于词云分析）
     * 对应字段：trip_advisor_evaluation_word (TEXT)
     */
    @TableField("trip_advisor_evaluation_word")
    private String tripAdvisorEvaluationWord;

    /**
     * 数据同步时间
     * 对应字段：synch_time (NOT NULL)
     */
    @TableField("synch_time")
    private LocalDateTime synchTime;

    /**
     * 同步追踪ID（用于数据一致性校验）
     * 对应字段：sync_trace_id (NOT NULL)
     */
    @TableField("sync_trace_id")
    private String syncTraceId;
}