package com.jeesharp.business.modules.member.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 会员付费开通DTO
 *
 * @author jeesharp
 * @version 2026-03-19
 */
@Data
@Schema(description = "会员付费开通请求")
public class MemberVipSaveDTO {

    @NotBlank(message = "会员ID不能为空")
    @Schema(description = "会员ID", requiredMode = Schema.RequiredMode.REQUIRED)
    private String memberId;

    @NotBlank(message = "付费等级编码不能为空")
    @Schema(description = "付费等级编码（VIP、SVIP）", requiredMode = Schema.RequiredMode.REQUIRED)
    private String levelCode;

    @Schema(description = "商品/套餐ID")
    private String productId;

    @Schema(description = "套餐名称（月卡/年卡等）")
    private String productName;

    @Schema(description = "关联订单号")
    private String orderNo;

    @NotNull(message = "生效开始时间不能为空")
    @Schema(description = "生效开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime startDate;

    @NotNull(message = "到期时间不能为空")
    @Schema(description = "到期时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime expireDate;

    @Schema(description = "备注")
    private String remarks;
}
