package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.brewery.domain.WyBeer;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 营销活动对象 wy_platform_activity
 * 
 * @author ruoyi
 * @date 2025-01-06
 */
@Data
public class WyPlatformActivity extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 1定向 2招募 */
    @Excel(name = "1定向 2招募")
    private Integer activityType;

    /** 活动名称 */
    @Excel(name = "活动名称")
    private String activityName;

    /** 活动描述 */
    @Excel(name = "活动描述")
    private String activityDesc;

    /** 活动状态 */
    @Excel(name = "活动状态")
    private Integer activityStatus;

    /** 活动产品范围：0无限制，1特定产品 */
    @Excel(name = "活动产品范围：0无限制，1特定产品")
    private Integer beerScope;

    /** 活动目标（桶） */
    @Excel(name = "活动目标", readConverterExp = "桶=")
    private Long activityTarget;

    /** 奖励方式 1商品，2啤酒币 */
    @Excel(name = "奖励方式 1商品，2啤酒币")
    private Integer activityRewardType;

    /** 奖励商品id（activity_reward_type=1） */
    @Excel(name = "奖励商品id", readConverterExp = "a=ctivity_reward_type=1")
    private Long activityRewardGoodsId;

    /** 奖励数量 */
    @Excel(name = "奖励数量")
    private Long activityRewardCount;
    //热度
    private Long popularity;
    /** 活动参与开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动参与开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 活动参与截至日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动参与截至日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 持续时间(天)，招募类型活动时生效 */
    @Excel(name = "持续时间(天)，招募类型活动时生效")
    private Long duration;

    /** 活动城市 */
    @Excel(name = "活动城市")
    private String city;

    @Excel(name = "活动产品id")
    private List<Long> beerIds;

    private List<WyBeer> beers;

    // 距目标还差多少桶
    private Integer remainingBeerCount;
}
