package com.ylx.point.domain;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ylx.common.annotation.Excel;
import com.ylx.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 积分活动过期策略表对象 point_activity_expire_policy
 *
 * @author wzj
 * @date 2026-03-25
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class PointActivityExpirePolicy extends BaseEntity {
    private static final long serialVersionUID = 1876690137251883567L;

    /**
     * 主键ID
     */
    private Long id;


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

    /**
     * 过期策略: 1=永久有效, 2=逐笔过期(N天), 3=逐年过期(N年)
     */
    @Excel(name = "过期策略: 1=永久有效, 2=逐笔过期(N天), 3=逐年过期(N年)")
    private Integer expirePolicy;

    /**
     * 有效期天数 (仅当 expire_policy=2 时有效)
     */
    @Excel(name = "有效期天数 (仅当 expire_policy=2 时有效)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer expireDays;

    /**
     * 逐年过期年份 (expire_policy=3时有效，如 "2027" 表示2027年1月1日过期)
     */
    @Excel(name = "逐年过期年份 (expire_policy=3时有效)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer expireYear;

}
