package com.ai.da.model.dto;


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

import java.math.BigDecimal;

@Data
@Schema(description = "创建订阅计划入参")
public class SubscriptionPlanDTO {

    @Schema(description = "组织id")
    @NotNull(message = "Please select an organizationId.")
    @Positive(message = "组织ID必须大于0")
    private Long organizationId;

    @Schema(description = "当前订阅开始时间")
    @NotNull(message = "Please set a subscription start time.")
    @Min(value = 0, message = "开始时间不能小于0")
    private Long currentPeriodStart;

    @Schema(description = "当前订阅结束时间")
    @NotNull(message = "Please set a subscription end time.")
    @Min(value = 0, message = "结束时间不能小于0")
    private Long currentPeriodEnd;

    @Schema(description = "当前订阅总的子账号数量")
    @NotNull(message = "Please set the sub-account number.")
    @Min(value = 0, message = "子账号数量不能小于0")
    private Integer accountNum;

    @Schema(description = "当前订阅可用积分上限")
    @NotNull(message = "Please set the credits limit.")
    private BigDecimal creditLimit;

    @Schema(description = "管理员账户id")
    @NotNull(message = "Please assign an administrator account.")
    @Positive(message = "管理员账号ID必须大于0")
    private Long adminAccId;

    @Schema(description = "订阅计划命名")
    private String name;

    @Schema(description = "订阅计划状态")
    private String status;

}
