package com.fs.erp.dto.tl;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

/**
 * 聚水潭订单主体信息
 */
@Data
public class TlOrderItem {

    /** 店铺ID */
    @JsonProperty("shop_id")
    private Integer shopId;

    /** 商家订单号（so_id） */
    @JsonProperty("so_id")
    private String soId;

    /** 下单时间，格式：RFC3339，如 "2025-10-02T16:00:23Z" */
    @JsonProperty("order_date")
    private String orderDate;

    /** 订单状态（字符串）：如 "paid"（已付款）、"unpaid"（未付款）等 */
    @JsonProperty("shop_status")
    private String shopStatus;

    /** 买家在店铺的唯一标识 */
    @JsonProperty("shop_buyer_id")
    private String shopBuyerId;

    // --- 收货地址相关 ---
    /** 收货省份（可选，若 receiver_address 包含完整地址则可不传） */
    @JsonProperty("receiver_state")
    private String receiverState;

    /** 收货市 */
    @JsonProperty("receiver_city")
    private String receiverCity;

    /** 收货区/街道 */
    @JsonProperty("receiver_district")
    private String receiverDistrict;

    /** 收货街道（更细粒度） */
    @JsonProperty("receiver_town")
    private String receiverTown;

    /** 邮政编码 */
    @JsonProperty("receiver_zip")
    private String receiverZip;

    /** 收货地址（必填），长度<=200；用 "___" 分隔详细地址1和2 */
    @JsonProperty("receiver_address")
    private String receiverAddress;

    /** 收件人姓名（必填） */
    @JsonProperty("receiver_name")
    private String receiverName;

    /** 联系电话（与 receiver_mobile 二选一） */
    @JsonProperty("receiver_phone")
    private String receiverPhone;

    /** 手机号（与 receiver_phone 二选一，必填其一） */
    @JsonProperty("receiver_mobile")
    private String receiverMobile;

    // --- 金额与状态 ---
    /** 应付金额（单位：分，注意文档中类型为 integer，但描述为保留两位小数 → 实际应为“分”） */
    @JsonProperty("pay_amount")
    private Integer payAmount;
//    private Double payAmount;

    /** 运费（单位：分） */
    @JsonProperty("freight")
    private Integer freight;
//    private Double freight;

    /** 卖家备注 */
    @JsonProperty("remark")
    private String remark;

    /** 买家留言 */
    @JsonProperty("buyer_message")
    private String buyerMessage;

    /** 是否货到付款 */
    @JsonProperty("is_cod")
    private Boolean isCod;

    /** 订单最后修改时间，RFC3339 格式 */
    @JsonProperty("shop_modified")
    private String shopModified;

    // --- 物流信息 ---
    /** 快递单号（物流单号） */
    @JsonProperty("l_id")
    private String lId;

    /** 快递公司名称 */
    @JsonProperty("logistics_company")
    private String logisticsCompany;

    /** 快递公司编码（需在聚水潭系统中预先配置） */
    @JsonProperty("lc_id")
    private String lcId;

    // --- 其他业务字段 ---
    /** 订单标签，多个用英文逗号分隔，单个标签 ≤10 字符，总长 ≤200 */
    @JsonProperty("labels")
    private String labels;

    /** 订单异常描述 */
    @JsonProperty("question_desc")
    private String questionDesc;

    /** 卖家旗帜（默认 0） */
    @JsonProperty("seller_flag")
    private Integer sellerFlag;

    /** 商品明细列表（必填） */
    @JsonProperty("items")
    private List<TlOrderItemDetail> items;

    /** 支付明细（必填） */
    @JsonProperty("pay")
    private TlPayDetail pay;

    /** 身份证信息（可选） */
    @JsonProperty("cart")
    private TlIdCardInfo cart;

    /** 发货日期，RFC3339 格式（必填） */
    @JsonProperty("send_date")
    private String sendDate;

    /** 线下备注 */
    @JsonProperty("node")
    private String node;

    /** 业务员 ID */
    @JsonProperty("creator")
    private Long creator;

    /** 业务员名称（必填） */
    @JsonProperty("creator_name")
    private String creatorName;
}