package com.hzs.common.domain.activity.base;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 活动基本配置表
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("AC_BASE_CONFIG")
@KeySequence("AC_BASE_CONFIG_SEQ")
public class AcBaseConfig extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId("PK_ID")
    private Long pkId;

    /**
     * 活动名称
     */
    @TableField("ACT_NAME")
    private String actName;

    /**
     * 活动类型（11=商品赠送 12=消费赠送 13=直推赠送 14=超级工作室赠送 15=节日赠送 16=新人礼包 17=抽奖 18=红包）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ACT_TYPE)
    @TableField("ACT_TYPE")
    private Integer actType;

    /**
     * 活动说明
     */
    @TableField("ACT_EXPLAIN")
    private String actExplain;

    /**
     * 活动开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("ACT_START_DATE")
    private Date actStartDate;

    /**
     * 活动结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("ACT_END_DATE")
    private Date actEndDate;

    /**
     * 显示开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("DIS_START_DATE")
    private Date disStartDate;

    /**
     * 显示结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("DIS_END_DATE")
    private Date disEndDate;

    /**
     * 活动封面
     */
    @TableField("ACT_COVER")
    private String actCover;

    /**
     * 金额
     */
    @TableField("PAY_MONEY")
    private BigDecimal payMoney;


    /**
     * 活动模块
     */
    @TableField("ATC_MODULE")
    private Integer atcModule;
    /**
     * 是否强制弹框 0 是  1 否
     */
    @TableField("IS_STRONG_ALERT")
    private Integer isStrongAlert;
    /**
     * 业务单号 -- 与业务ID至少传一个
     */
    @TableField(exist = false)
    private String businessCode;
}
