package com.rj.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 客户画像分析实体类
 * 
 * @author 李中华
 * @date 2025/1/3
 */
@Data
@TableName("customer_profile_analysis")
public class CustomerProfileAnalysis {

    @TableId(type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 租户ID
     */
    @TableField("tenant_id")
    private String tenantId;

    /**
     * AI分析记录ID
     */
    @TableField("profile_analysis_record_id")
    private String profileAnalysisRecordId;

    /**
     * 分析类型：1-企微会话 2-AI通话录音 3-AI铭牌(客流) 4-AI铭牌(试驾)
     */
    @TableField("analysis_scene_type")
    private Integer analysisSceneType;

    /**
     * 沟通时间：AI通话录音-通话开始时间 企微会话-语料消息截至时间 面谈-语料消息截至时间
     */
    @TableField("interaction_date")
    private LocalDateTime interactionDate;

    /**
     * 业务ID：根据分析不同传不同的值 1-unionId 2-通话ID 3-客流ID 4-试驾ID
     */
    @TableField("related_business_id")
    private String relatedBusinessId;

    /**
     * 经销商编码
     */
    @TableField("dealer_code")
    private String dealerCode;

    /**
     * 经销商门店名称
     */
    @TableField("dealer_name")
    private String dealerName;

    /**
     * 大区
     */
    @TableField("big_area")
    private String bigArea;

    /**
     * 项目ID
     */
    @TableField("project_id")
    private String projectId;

    /**
     * 项目名称
     */
    @TableField("project_name")
    private String projectName;

    /**
     * 销售顾问ID
     */
    @TableField("sales_person_id")
    private String salesPersonId;

    /**
     * 销售顾问姓名
     */
    @TableField("sales_person_name")
    private String salesPersonName;

    /**
     * 商机ID
     */
    @TableField("opportunity_id")
    private String opportunityId;

    /**
     * 客户ID
     */
    @TableField("client_id")
    private String clientId;

    /**
     * 客户姓名
     */
    @TableField("client_name")
    private String clientName;

    /**
     * 客户电话
     */
    @TableField("client_phone")
    private String clientPhone;

    // ========== 客户画像信息字段 ==========

    /**
     * 预购日期（示例值：天数）
     */
    @TableField("purchase_date")
    private String purchaseDate;

    /**
     * 购买类型（示例值：新购/置换/增购）
     */
    @TableField("purchase_type")
    private String purchaseType;

    /**
     * 付款方式（示例值：贷款/全款/分期）
     */
    @TableField("payment_way")
    private String paymentWay;

    /**
     * 竞品品牌（示例值：奔驰/宝马/奥迪）
     */
    @TableField("competitor_brand")
    private String competitorBrand;

    /**
     * 购车用途（示例值：家用/商用/代步）
     */
    @TableField("vehicle_usage")
    private String vehicleUsage;

    /**
     * 实际驾驶人（示例值：本人/家人/其他）
     */
    @TableField("primary_driver")
    private String primaryDriver;

    /**
     * 购车预算（示例值：具体预算范围）
     */
    @TableField("budget_range")
    private String budgetRange;

    /**
     * 教育水平（示例值：本科/硕士/高中）
     */
    @TableField("education_level")
    private String educationLevel;

    /**
     * 家庭结构（示例值：已婚有子女/单身）
     */
    @TableField("family_composition")
    private String familyComposition;

    /**
     * 家庭月收入（示例值：具体收入区间）
     */
    @TableField("monthly_income")
    private String monthlyIncome;

    /**
     * 职业（示例值：教师/工程师/医生）
     */
    @TableField("job_title")
    private String jobTitle;

    /**
     * 企业性质（示例值：民营企业/国企/外企）
     */
    @TableField("company_type")
    private String companyType;

    /**
     * 所属行业（示例值：教育/互联网/金融）
     */
    @TableField("industry_sector")
    private String industrySector;

    /**
     * 兴趣点（示例值：智能驾驶/油耗/空间）
     */
    @TableField("interest_focus")
    private String interestFocus;

    /**
     * 顾虑点（示例值：保养成本/保值率）
     */
    @TableField("concern_point")
    private String concernPoint;

    /**
     * 购车资质（示例值：是否）
     */
    @TableField("purchase_qualification")
    private String purchaseQualification;

    /**
     * 备注（非枚举，保留名称）
     */
    @TableField("notes")
    private String notes;

    /**
     * 保有品牌（非枚举，示例值）
     */
    @TableField("current_brand")
    private String currentBrand;

    /**
     * 详细地址（非枚举，示例值）
     */
    @TableField("home_address")
    private String homeAddress;

    /**
     * 家庭人数（非枚举，示例值）
     */
    @TableField("family_size")
    private String familySize;

    /**
     * 个人爱好（非枚举，示例值）
     */
    @TableField("hobby")
    private String hobby;

    // ========== 实体情感分析字段 ==========

    /**
     * 品牌情感倾向：积极/中性/消极
     */
    @TableField("entity_brand")
    private String entityBrand;

    /**
     * 品牌情感倾向原因
     */
    @TableField("entity_brand_reason")
    private String entityBrandReason;

    /**
     * 外观设计情感倾向：积极/中性/消极
     */
    @TableField("entity_design")
    private String entityDesign;

    /**
     * 外观设计情感倾向原因
     */
    @TableField("entity_design_reason")
    private String entityDesignReason;

    /**
     * 颜色情感倾向：积极/中性/消极
     */
    @TableField("entity_color")
    private String entityColor;

    /**
     * 颜色情感倾向原因
     */
    @TableField("entity_color_reason")
    private String entityColorReason;

    /**
     * 尺寸情感倾向：积极/中性/消极
     */
    @TableField("entity_size")
    private String entitySize;

    /**
     * 尺寸情感倾向原因
     */
    @TableField("entity_size_reason")
    private String entitySizeReason;

    /**
     * 空间情感倾向：积极/中性/消极
     */
    @TableField("entity_space")
    private String entitySpace;

    /**
     * 空间情感倾向原因
     */
    @TableField("entity_space_reason")
    private String entitySpaceReason;

    /**
     * 内饰情感倾向：积极/中性/消极
     */
    @TableField("entity_interior")
    private String entityInterior;

    /**
     * 内饰情感倾向原因
     */
    @TableField("entity_interior_reason")
    private String entityInteriorReason;

    /**
     * 音响情感倾向：积极/中性/消极
     */
    @TableField("entity_audio")
    private String entityAudio;

    /**
     * 音响情感倾向原因
     */
    @TableField("entity_audio_reason")
    private String entityAudioReason;

    /**
     * 车机情感倾向：积极/中性/消极
     */
    @TableField("entity_ivinfo")
    private String entityIvinfo;

    /**
     * 车机情感倾向原因
     */
    @TableField("entity_ivinfo_reason")
    private String entityIvinfoReason;

    /**
     * 智驾情感倾向：积极/中性/消极
     */
    @TableField("entity_fsd")
    private String entityFsd;

    /**
     * 智驾情感倾向原因
     */
    @TableField("entity_fsd_reason")
    private String entityFsdReason;

    /**
     * 续航情感倾向：积极/中性/消极
     */
    @TableField("entity_mileage")
    private String entityMileage;

    /**
     * 续航情感倾向原因
     */
    @TableField("entity_mileage_reason")
    private String entityMileageReason;

    /**
     * 安全情感倾向：积极/中性/消极
     */
    @TableField("entity_safety")
    private String entitySafety;

    /**
     * 安全情感倾向原因
     */
    @TableField("entity_safety_reason")
    private String entitySafetyReason;

    /**
     * 环保情感倾向：积极/中性/消极
     */
    @TableField("entity_eco")
    private String entityEco;

    /**
     * 环保情感倾向原因
     */
    @TableField("entity_eco_reason")
    private String entityEcoReason;

    /**
     * 绿牌/路权情感倾向：积极/中性/消极
     */
    @TableField("entity_liscense")
    private String entityLiscense;

    /**
     * 绿牌/路权情感倾向原因
     */
    @TableField("entity_liscense_reason")
    private String entityLiscenseReason;

    /**
     * 价格情感倾向：积极/中性/消极
     */
    @TableField("entity_price")
    private String entityPrice;

    /**
     * 价格情感倾向原因
     */
    @TableField("entity_price_reason")
    private String entityPriceReason;

    /**
     * 购车权益情感倾向：积极/中性/消极
     */
    @TableField("entity_benefit")
    private String entityBenefit;

    /**
     * 购车权益情感倾向原因
     */
    @TableField("entity_benefit_reason")
    private String entityBenefitReason;

    /**
     * 用车成本情感倾向：积极/中性/消极
     */
    @TableField("entity_cost")
    private String entityCost;

    /**
     * 用车成本情感倾向原因
     */
    @TableField("entity_cost_reason")
    private String entityCostReason;

    /**
     * 性价比情感倾向：积极/中性/消极
     */
    @TableField("entity_value")
    private String entityValue;

    /**
     * 性价比情感倾向原因
     */
    @TableField("entity_value_reason")
    private String entityValueReason;

    /**
     * 动力情感倾向：积极/中性/消极
     */
    @TableField("entity_power")
    private String entityPower;

    /**
     * 动力情感倾向原因
     */
    @TableField("entity_power_reason")
    private String entityPowerReason;

    /**
     * 操控情感倾向：积极/中性/消极
     */
    @TableField("entity_control")
    private String entityControl;

    /**
     * 操控情感倾向原因
     */
    @TableField("entity_control_reason")
    private String entityControlReason;

    /**
     * 置换政策情感倾向：积极/中性/消极
     */
    @TableField("entity_tradein")
    private String entityTradein;

    /**
     * 置换政策情感倾向原因
     */
    @TableField("entity_tradein_reason")
    private String entityTradeinReason;

    /**
     * 金融方案情感倾向：积极/中性/消极
     */
    @TableField("entity_finance")
    private String entityFinance;

    /**
     * 金融方案情感倾向原因
     */
    @TableField("entity_finance_reason")
    private String entityFinanceReason;

    /**
     * 质保情感倾向：积极/中性/消极
     */
    @TableField("entity_warranty")
    private String entityWarranty;

    /**
     * 质保情感倾向原因
     */
    @TableField("entity_warranty_reason")
    private String entityWarrantyReason;

    /**
     * 交付时间情感倾向：积极/中性/消极
     */
    @TableField("entity_delivery")
    private String entityDelivery;

    /**
     * 交付时间情感倾向原因
     */
    @TableField("entity_delivery_reason")
    private String entityDeliveryReason;

    // ========== 系统字段 ==========

    /**
     * 创建人id
     */
    @TableField("created_by")
    private String createdBy;

    /**
     * 创建时间
     */
    @TableField("created_at")
    private LocalDateTime createdAt;

    /**
     * 更新人id
     */
    @TableField("updated_by")
    private String updatedBy;

    /**
     * 更新时间
     */
    @TableField("updated_at")
    private LocalDateTime updatedAt;

    /**
     * 创建sql人
     */
    @TableField("create_sqlby")
    private String createSqlby;

    /**
     * 更新人sql人
     */
    @TableField("update_sqlby")
    private String updateSqlby;

    /**
     * 版本号(乐观锁)
     */
    @TableField("record_version")
    private Integer recordVersion;

    /**
     * 是否删除
     */
    @TableField("is_deleted")
    private Integer isDeleted;
}
