package com.muchinfo.mtp3pojos.vo.taaccount;

import com.muchinfo.mtp3pojos.vo.bankaccountsign.AccountSignQueryResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "TaAccountQueryResultDetail对象", description = "资金管理列表查询详情返回")
public class TaAccountQueryResultDetail {

    @ApiModelProperty(value = "资金账号")
    private Long accountId;

    @ApiModelProperty(value = "资金账号")
    private Long userId;

    @ApiModelProperty(value = "所属机构")
    private String accountName;

    @ApiModelProperty(value = "是否母账户 0 子账户，1 母账号")
    private Integer isMain;

    @ApiModelProperty(value = "所属母账户/ismain = 0 展示")
    private Long parentAccountId;
    @ApiModelProperty(value = "关联用户id")
    private Long relatedUserId;
    @ApiModelProperty(value = "关联用户/关联用户id!=null && ismain = 0 展示")
    private String relativeAccountName;
    @ApiModelProperty(value = "关联用户状态/关联用户id!=null &&ismain = 0 展示")
    private Integer relatedAccountStatus;

    @ApiModelProperty(value = "币种")
    private Integer currency;

    @ApiModelProperty(value = "内/外部 0 内部账户,1 外部账户")
    private Integer taAccountType;

    @ApiModelProperty(value = "变动标志")
    private Integer changeFlag;

    @ApiModelProperty(value = "交易状态")
    private Integer tradeStatus;

    @ApiModelProperty(value = "期末余额")
    private BigDecimal currentBalance;

    @ApiModelProperty(value = "平台服务费")
    private BigDecimal payCharge;

    @ApiModelProperty(value = "货款")
    private BigDecimal otherPay;

    @ApiModelProperty(value = "交割保证金")
    private BigDecimal otherFreezeMargin;

    @ApiModelProperty(value = "冻结保证金")
    private BigDecimal freezeMargin;

    @ApiModelProperty(value = "占用保证金")
    private BigDecimal usedMargin;

    @ApiModelProperty(value = "交易服务费冻结")
    private BigDecimal freezeCharge;

    @ApiModelProperty(value = "出金冻结")
    private BigDecimal outAmountFreeze;

    @ApiModelProperty(value = "出金阈值")
    private BigDecimal outThreshold;

    @ApiModelProperty(value = "是否展示市场控件 1展示，0不展示")
    @Builder.Default
    private Integer isSelf = 0;

    @ApiModelProperty(value = "市场权限 isSelf == 1展示")
    private List<TaAccountMarketVo> dType;

    @ApiModelProperty(value = "授权交易账户 isSelf == 1展示")
    private List<Long> loginIds ;

    @ApiModelProperty(value = "银行卡信息 isMain = 1 展示")
    private List<AccountSignQueryResult> bankAccountsignList;
}
