package com.seer.teach.pay.admin.withdrawal.controller.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

@Data
@Schema(description = "商家收款账户请求参数")
public class PayMerchantBankAccountReq {

    @Schema(description = "主键ID")
    private Integer id;

    @Schema(description = "账户类型：1-银行卡，2-支付宝，3-微信", required = true)
    @NotNull(message = "账户类型不能为空")
    private Integer accountType;

    @Schema(description = "开户名（需与user.real_name一致，防冒领）", required = true)
    @NotBlank(message = "开户名不能为空")
    private String accountName;

    @Schema(description = "账号（脱敏存储：银行卡显后4位，支付宝/微信显前2后4）", required = true)
    @NotBlank(message = "账号不能为空")
    private String accountNo;

    @Schema(description = "开户银行（account_type=1必填，如中国工商银行）")
    private String bankName;

    @Schema(description = "开户支行（account_type=1可选，如工行北京朝阳支行）")
    private String branchBankName;

    @Schema(description = "是否默认账户：0-否，1-是（一个用户仅一个默认账户）", required = true)
    @NotNull(message = "是否默认账户不能为空")
    private Integer isDefault;

    @Schema(description = "账户状态：1-正常，0-禁用（如账号错误被驳回）", required = true)
    @NotNull(message = "账户状态不能为空")
    private Integer accountStatus;
}