package com.ruoyi.info.collection.domain.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.ruoyi.common.annotation.TextFormat;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 账户库导入导出对象
 *
 * @author ruoyi
 * @date 2026-04-14
 */
@Data
public class CcdiAccountInfoExcel implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @ExcelProperty(value = "所属人类型*", index = 0)
    @ColumnWidth(16)
    private String ownerType;

    @ExcelProperty(value = "证件号*", index = 1)
    @ColumnWidth(24)
    @TextFormat
    private String ownerId;

    @ExcelProperty(value = "账户姓名*", index = 2)
    @ColumnWidth(18)
    private String accountName;

    @ExcelProperty(value = "账户号码*", index = 3)
    @ColumnWidth(28)
    @TextFormat
    private String accountNo;

    @ExcelProperty(value = "账户类型*", index = 4)
    @ColumnWidth(16)
    private String accountType;

    @ExcelProperty(value = "账户范围*", index = 5)
    @ColumnWidth(14)
    private String bankScope;

    @ExcelProperty(value = "开户机构*", index = 6)
    @ColumnWidth(28)
    private String openBank;

    @ExcelProperty(value = "银行代码", index = 7)
    @ColumnWidth(16)
    @TextFormat
    private String bankCode;

    @ExcelProperty(value = "币种", index = 8)
    @ColumnWidth(10)
    private String currency;

    @ExcelProperty(value = "状态*", index = 9)
    @ColumnWidth(12)
    private String status;

    @ExcelProperty(value = "生效日期*(yyyy-MM-dd)", index = 10)
    @ColumnWidth(18)
    private String effectiveDate;

    @ExcelProperty(value = "失效日期(yyyy-MM-dd)", index = 11)
    @ColumnWidth(18)
    private String invalidDate;

    @ExcelProperty(value = "是否实控账户", index = 12)
    @ColumnWidth(14)
    private String isActualControl;

    @ExcelProperty(value = "月均交易笔数", index = 13)
    @ColumnWidth(14)
    private String avgMonthTxnCount;

    @ExcelProperty(value = "月均交易金额", index = 14)
    @ColumnWidth(16)
    private String avgMonthTxnAmount;

    @ExcelProperty(value = "频率等级", index = 15)
    @ColumnWidth(12)
    private String txnFrequencyLevel;

    @ExcelProperty(value = "借方单笔最高额", index = 16)
    @ColumnWidth(16)
    private String debitSingleMaxAmount;

    @ExcelProperty(value = "贷方单笔最高额", index = 17)
    @ColumnWidth(16)
    private String creditSingleMaxAmount;

    @ExcelProperty(value = "借方日累计最高额", index = 18)
    @ColumnWidth(16)
    private String debitDailyMaxAmount;

    @ExcelProperty(value = "贷方日累计最高额", index = 19)
    @ColumnWidth(16)
    private String creditDailyMaxAmount;

    @ExcelProperty(value = "风险等级", index = 20)
    @ColumnWidth(12)
    private String txnRiskLevel;
}
