package com.hys.app.model.otherPullModel;

import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class AmazonOrder {

    // 亚马逊订单ID
    private String amazonOrderId;

    // 卖家订单ID
    private String sellerOrderId;

    // 订单购买日期
    private Date purchaseDate;

    // 订单最后更新日期
    private Date lastUpdateDate;

    // 订单状态
    private String orderStatus;

    // 履行渠道 (AFN: Amazon Fulfillment Network, MFN: Merchant Fulfillment Network)
    private String fulfillmentChannel;

    // 销售渠道
    private String salesChannel;

    // 订单渠道
    private String orderChannel;

    // 发货服务级别
    private String shipServiceLevel;

    // 收货地址
    private Address shippingAddress;

    // 订单总金额
    private Money orderTotal;

    // 已发货商品数量
    private int numberOfItemsShipped;

    // 未发货商品数量
    private int numberOfItemsUnshipped;

    // 支付执行详情
    private List<PaymentExecutionDetailItem> paymentExecutionDetail;

    // 支付方式
    private String paymentMethod;

    // 市场ID
    private String marketplaceId;

    // 买家电子邮件
    private String buyerEmail;

    // 买家姓名
    private String buyerName;

    // 发货服务级别类别
    private String shipmentServiceLevelCategory;

    // 是否由亚马逊TFM发货
    private boolean shippedByAmazonTFM;

    // TFM发货状态
    private String tfmShipmentStatus;

    // EasyShip发货状态
    private String easyShipShipmentStatus;

    // CBA可显示的发货标签
    private String cbaDisplayableShippingLabel;

    // 订单类型
    private String orderType;

    // 最早发货日期
    private Date earliestShipDate;

    // 最晚发货日期
    private Date latestShipDate;

    // 最早送达日期
    private Date earliestDeliveryDate;

    // 最晚送达日期
    private Date latestDeliveryDate;

    // 是否为商业订单
    private boolean isBusinessOrder;

    // 采购订单号
    private String purchaseOrderNumber;

    // 是否为Prime订单
    private boolean isPrime;

    // 是否为高级订单
    private boolean isPremiumOrder;

    // 被替换的订单ID
    private String replacedOrderId;

    // 是否为替换订单
    private boolean isReplacementOrder;

    // 承诺响应截止日期
    private Date promiseResponseDueDate;

    // 是否设置了预计发货日期
    private boolean isEstimatedShipDateSet;

    // Getters and Setters
    // ...

    // Address类
    @Data
    public static class Address {
        // 收件人姓名
        private String name;
        // 地址行1
        private String addressLine1;
        // 地址行2
        private String addressLine2;
        // 地址行3
        private String addressLine3;
        // 城市
        private String city;
        // 县
        private String county;
        // 区
        private String district;
        // 州或地区
        private String stateOrRegion;
        // 邮政编码
        private String postalCode;
        // 国家代码
        private String countryCode;
        // 电话号码
        private String phone;
    }

    // Money类
    @Data
    public static class Money {
        // 货币代码
        private String currencyCode;
        // 金额
        private String amount;

    }

    // PaymentExecutionDetailItem类
    @Data
    public static class PaymentExecutionDetailItem {
        // 支付金额
        private Money payment;
        // 支付方式
        private String paymentMethod;

    }
}
