package com.moka.gdtauto.entity;

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

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

/**
 * 广告计划创意实体
 * 
 * @author moka
 * @since 2026-02-24
 */
@Data
@TableName("ad_plan_creative")
public class AdPlanCreative {

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

    private Long adPlanConfId;

    /**
     * 计划ID
     */
    private Long adPlanId;

    /**
     * 账户ID
     */
    private Long accountId;

    /**
     * 广告组ID
     */
    private Long adgroupId;

    /**
     * 创意ID
     */
    private Long creativeId;

    /**
     * 创意名称60个中文字
     */
    private String creativeName;

    /**
     * 图片ID
     */
    private Long imageId;
    private Long videoId;
    /**
     * 创意文件
     */
    private String creativeFileType;
    private String creativeFileUrl;
    private String creativeFileMd5;
    /**
     * 创意文本
     */
    private String creativeText;

    /**
     * 品牌相关
     */
    private String brandName;
    private String brandImageUrl;
    private String brandImageFileMd5;
    private Long brandImageId;
    private String buttonText;

    /**
     * 落地页ID
     */
    private String pageIds;

    /**
     * 计划状态：1-待执行，2-执行中，3-失败，4-已结束
     */
    private Integer status;
    /**
     * 花费
     * 单位：分
     */
    private Long cost;
    /**
     * 转化成本
     */
    private Long conversionsCost;
    /**
     * 曝光次数
     */
    private Long viewCount;
    /**
     * 有效点击次数
     */
    private Long validClickCount;
    /**
     * 点击率
     */
    private BigDecimal ctr;

    /**
     * 广告播放口径 首日广告变现金额
     */
    private Long reqIncomeVal1;
    /**
     * 广告播放口径 首日ROI
     */
    private BigDecimal reqIncomeRoi1;
    /**
     * 转化回传口径 首日广告变现金额
     */
    private Long repIncomeVal1;
    /**
     * 转化回传口径 首日ROI
     */
    private BigDecimal repIncomeRoi1;

    // 加企业微信客服成本。计算公式：花费/加企业微信客服人数
    // 单位：分
    private Long scanFollowUserCost;

    /**
     * 客户设置的状态
     */
    private String configuredStatus;
    /**
     * 审批状态
     */
    private String approvalStatus;
    /**
     * 是否删除(广告侧)
     */
    private String systemDelete;

    /**
     * 失败原因
     */
    private String failReason;

    /**
     * 成功时间
     */
    private LocalDateTime successTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 逻辑删除：0-未删除，1-已删除
     */
    private Integer deleted;
}
