package com.zt.plat.module.contractorder.controller.admin.salesorder.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 销售订单明细分页 Request VO")
@Data
public class SalesOrderDetailPageReqVO extends PageParam {

    @Schema(description = "订单主键", example = "9072")
    private Long orderId;

    @Schema(description = "行项目;推送ERP(必须)")
    private Long lineNumber;

    @Schema(description = "物料名称", example = "芋艿")
    private String materialName;

    @Schema(description = "物料编码;推送ERP(必须)")
    private String materialNumber;

    @Schema(description = "工厂名称", example = "芋艿")
    private String factoryName;

    @Schema(description = "工厂编码;推送ERP(必须)")
    private String factoryNumber;

    @Schema(description = "库位名称", example = "赵六")
    private String warehouseName;

    @Schema(description = "库位编码;推送ERP(必须)")
    private String warehouseNumber;

    @Schema(description = "计量单位;推送ERP(必须)")
    private String unt;

    @Schema(description = "开票类型;推送ERP(必须)", example = "2")
    private String invoiceType;

    @Schema(description = "暂估数量;推送ERP(必须)")
    private BigDecimal quantity;

    @Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)")
    private String taxAcctasscat;

    @Schema(description = "项目类别;推送ERP")
    private String projectCategory;

    @Schema(description = "装运地点;推送ERP")
    private String shippingPlace;

    @Schema(description = "物料科目分配组;推送ERP（必须）")
    private String metalAcctasscatGroup;

    @Schema(description = "小协议号")
    private String agreementNumber;

    @Schema(description = "总价")
    private BigDecimal gross;

    @Schema(description = "金属元素缩写")
    private String elementAbbreviation;

    @Schema(description = "金属元素名称", example = "张三")
    private String elementName;

    @Schema(description = "金属元素编码")
    private String elementNumber;

    @Schema(description = "是否启用;处理明细中多个相同物料，只能允许一种物料启用")
    private String isEnable;

    @Schema(description = "价格条件详情;推送ERP(必须):JSON")
    private String priceConditionDetail;

    @Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)")
    private String originDetail;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
