
package com.czg.account.dto;

import java.io.Serializable;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import java.util.List;

import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 店铺分享 实体类。
 *
 * @author zs
 * @since 2025-03-05
 */
@Data

@NoArgsConstructor
@AllArgsConstructor
public class ShopShareDTO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 标题
     */
    @Size(min = 1, message = "标题不为空")
    private String title;

    /**
     * 分享封面图
     */
    @Size(min = 1, message = "分享封面图不为空")
    private String shareImg;

    /**
     * 邀请顶部图
     */
    @Size(min = 1, message = "邀请顶部图不为空")
    private String invitedImg;

    /**
     * 被邀顶部图
     */
    @Size(min = 1, message = "被邀顶部图不为空")
    private String beInvitedImg;

    /**
     * 活动开始时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /**
     * 活动结束时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    /**
     * 新用户获得券
     */
    private List<ShopShareCouponDTO> newCouponList;

    /**
     * 邀请人数
     */
    private Integer invitedNum;

    /**
     * 奖励券
     */
    private List<ShopShareCouponDTO> rewardCouponList;

    /**
     * 获取方法 get-新用户领取获得 use-新用户使用获得
     */
    @Size(min = 1, message = "获取方法不为空")
    private String getMethod;

    /**
     * 0 关闭 1 开启
     */
    private Integer status;

}
