package com.czg.account.param;

import com.alibaba.fastjson2.annotation.JSONField;
import com.czg.validator.group.InsertGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 积分订单创建入参
 *
 * @author tankaikai
 * @since 2025-02-26 10:03
 */
@Data
public class PointsOrderCreateParam implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 店铺id
     */
    @JSONField(serialize = false)
    @NotNull(message = "店铺id不能为空", groups = InsertGroup.class)
    private Long shopId;
    /**
     * 积分商品id
     */
    @NotNull(message = "积分商品id不能为空", groups = InsertGroup.class)
    private Long pointsGoodsId;
    /**
     * 领取方式 self-自取 post-邮寄
     */
    @NotBlank(message = "领取方式不能为空", groups = InsertGroup.class)
    private String pickupMethod;
    /**
     * 用户id
     */
    @NotNull(message = "用户id不能为空", groups = InsertGroup.class)
    private Long userId;
    /**
     * 用户昵称
     */
    @NotBlank(message = "用户昵称不能为空", groups = InsertGroup.class)
    private String nickName;
    /**
     * 手机号码
     */
    private String mobile;
    /**
     * 会员头像
     */
    private String avatarUrl;
    /**
     * 积分商品名称
     */
    @JSONField(serialize = false)
    private String pointsGoodsName;
    /**
     * 商品图片URL
     */
    @JSONField(serialize = false)
    private String goodsImageUrl;
}
