package com.zsElectric.boot.business.model.form;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 企业余额变更表单对象
 *
 * @author zsElectric
 * @since 2025-12-26
 */
@Getter
@Setter
@Schema(description = "企业余额变更表单对象")
public class FirmBalanceChangeForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "企业ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "企业ID不能为空")
    private Long firmId;

    @Schema(description = "变更金额（正数）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "变更金额不能为空")
    @DecimalMin(value = "0.01", message = "变更金额必须大于0")
    private BigDecimal amount;

    @Schema(description = "收支类型（1-上账/转入 2-下账/转出）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "收支类型不能为空")
    private Integer incomeType;

    @Schema(description = "改变类型（1-充值 2-提现 3-其他）")
    private Integer changeType;

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