package com.jeesharp.business.modules.pay.paysubmerchantapplyment.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.jeesharp.framework.mybatis.core.dataobject.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 特约商户修改结算账户申请记录，映射表 {@code biz_pay_sub_merchant_settlement_modify}。
 *
 * @author jeesharp
 * @since 2026-06-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("biz_pay_sub_merchant_settlement_modify")
@Schema(description = "特约商户修改结算账户申请")
public class PaySubMerchantSettlementModify extends BaseEntity<PaySubMerchantSettlementModify> {

    @Schema(description = "关联进件主表 ID")
    private String applymentId;

    @Schema(description = "特约商户号")
    private String subMchId;

    @Schema(description = "微信修改结算账户申请单号")
    private String applicationNo;

    @Schema(description = "账户类型：ACCOUNT_TYPE_BUSINESS/ACCOUNT_TYPE_PRIVATE")
    private String accountType;

    @Schema(description = "开户银行")
    private String accountBank;

    @Schema(description = "开户银行全称（含支行）")
    private String bankName;

    @Schema(description = "联行号")
    private String bankBranchId;

    @Schema(description = "开户银行省市编码")
    private String bankAddressCode;

    @Schema(description = "审核状态：AUDITING/AUDIT_SUCCESS/AUDIT_FAIL")
    private String auditStatus;

    @Schema(description = "审核说明/驳回原因")
    private String auditStatusDesc;

    @Schema(description = "提交微信请求体")
    private String submitJson;

    @Schema(description = "最近一次查询审核响应")
    private String queryJson;

    @Schema(description = "提交微信时间")
    private LocalDateTime submitDate;

    @Schema(description = "最近同步审核时间")
    private LocalDateTime lastSyncDate;

    @Schema(description = "进件所属租户ID（业务字段）")
    private String applymentTenantId;
}
