package com.fjhx.sale.entity.contract.vo;

import lombok.Getter;
import lombok.Setter;

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

@Getter
@Setter
public class ContractPdfInfoVo {

    /**
     * 合同编号
     */
    private String contractCode;

    /**
     * 创建时间英文
     */
    private String createTimeEn;

    /**
     * 运输说明
     */
    private String transportRemark;

    /**
     * 付款条件
     */
    private String remark;

    /**
     * 贸易方式（字典trade_methods）
     */
    private String tradeMethods;

    /**
     * 币种（字典account_currency）
     */
    private String currency;

    /**
     * 卖方公司英文名称
     */
    private String sellCorporationNameEn;

    /**
     * 卖方联系人名称
     */
    private String sellContactName;

    /**
     * 卖方联系人电话
     */
    private String sellContactNumber;

    /**
     * 卖方公司国家
     */
    private String sellCountryName;

    /**
     * 卖方公司省
     */
    private String sellProvinceName;

    /**
     * 卖方公司市
     */
    private String sellCityName;

    /**
     * 卖方公司详细地址
     */
    private String sellDetailedAddress;


    /**
     * 买方公司名称
     */
    private String buyCorporationName;

    /**
     * 买方联系人名称
     */
    private String buyContactName;

    /**
     * 买方联系人电话
     */
    private String buyContactNumber;

    /**
     * 买方公司国家
     */
    private String buyCountryName;

    /**
     * 买方公司省
     */
    private String buyProvinceName;

    /**
     * 买方公司市
     */
    private String buyCityName;

    /**
     * 卖方公司详细地址
     */
    private String buyDetailedAddress;

    /**
     * 产品信息
     */
    private List<ProductInfo> productInfoList;

    /**
     * 总金额
     */
    private BigDecimal totalAmount;

    /**
     * 交期
     */
    private String deliveryTime;

    /**
     * 运输方式（字典  shipping_method）
     */
    private String transportMethod;

    /**
     * 收款账号ID
     *
     * <p>
     * {@link com.fjhx.account.entity.account.po.AccountManagement}
     */
    private Long shroffAccountId;

    /**
     * 账户名称（外汇信息）
     */
    private String beneficiaryName;

    /**
     * 开户银行（外汇信息）
     */
    private String beneficiaryBank;

    /**
     * 开户银行地址（外汇信息）
     */
    private String beneficiaryBankAddress;

    /**
     * 账号（外汇信息）
     */
    private String beneficiaryAccountNumber;

    /**
     * 银行代码（外汇信息）
     */
    private String swiftCode;

    /**
     * 收款人地址（外汇信息）
     */
    private String beneficiaryAddress;

    @Getter
    @Setter
    public static class ProductInfo {

        /**
         * 产品id
         */
        private Long productId;

        /**
         * 产品名称
         */
        private String productName;

        /**
         * 产品单位
         */
        private String productUnit;

        /**
         * 产品数量
         */
        private BigDecimal productQuantity;

        /**
         * 产品单价
         */
        private BigDecimal productPrice;

        /**
         * 金额
         */
        private BigDecimal amount;

    }

}
