package com.ylx.point.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ylx.common.annotation.Excel;
import com.ylx.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 积分活动主对象 point_activity
 *
 * @author wzj
 * @date 2026-03-25
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class PointActivity extends BaseEntity {
    private static final long serialVersionUID = -6781693663144671191L;

    /**
     * 活动ID
     */
    private Long id;

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

    /**
     * 活动简述
     */
    @Excel(name = "活动简述")
    private String description;

    /**
     * 活动类型：0(签到活动), 1(新手活动), 2(每日活动), 3(每月活动)
     */
    @Excel(name = "活动类型：0(签到活动), 1(新手活动), 2(每日活动), 3(每月活动)")
    private Integer activityType;

    /**
     * 覆盖城市代码 (0表示全国)
     */
    @Excel(name = "覆盖城市代码 (0表示全国)")
    private String cityCode;

    /**
     * 活动开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 活动结束时间 (NULL表示长期有效)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "活动结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 是否长期有效 (1:是, 0:否)
     */
    @Excel(name = "是否长期有效 (1:是, 0:否)")
    private String isPermanent;

    /**
     * 过期策略id
     */
    @Excel(name = "过期策略id")
    private Long expirePolicyId;

    /**
     * 状态: 0=未开始, 1=进行中, 2=已结束, 3=草稿
     */
    @Excel(name = "状态: 0=未开始, 1=进行中, 2=已结束, 3=草稿")
    private Integer status;

    /**
     * 前端展示排序
     */
    @Excel(name = "前端展示排序")
    private Long sortOrder;

}
