package com.scm.contract.model.apply;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.set.direwolf.core.mybatis.BaseEntity;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

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

/**
 * @author zuo
 * @date 2024/6/4 17:56
 */
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName(value = "label_application")
@Data
public class LabelApplication extends BaseEntity<LabelApplication, String> {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId
    private String id;

    /**
     * 时间
     */
    @TableField(value = "`dataTime`")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy/MM/dd HH:mm:ss")
    private Date dataTime;

    /**
     * 供应商id
     */
    @TableField(value = "`providerId`")
    private String providerId;

    /**
     * 订单号
     */
    @TableField(value = "`orderNo`")
    private String orderNo;

    /**
     * 标签申领状态主键
     */
    @TableField(value = "`tagApplyStateId`")
    private String tagApplyStateId;

    /**
     * 操作员userId
     */
    @TableField(value = "`operatorId`")
    private String operatorId;

    /**
     * 操作员名子
     */
    @TableField(value = "`operatorName`")
    private String operatorName;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy/MM/dd HH:mm:ss")
    @TableField(value = "`createTime`")
    private Date cTime;

    /**
     * 修改时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy/MM/dd HH:mm:ss")
    @TableField(value = "`updateTime`")
    private Date updateTime;


    /**
     * 总价
     */
    @TableField(exist = false)
    private Long tagNumber;

    /**
     * 总价
     */
    @TableField(exist = false)
    private Double amount;

    /**
     * 供应商名称
     */
    @TableField(exist = false)
    private String providerName;

    /**
     * 从表信息
     */
    @TableField(exist = false)
    private List<LabelApplicationDetail> details;

    @TableField(exist = false)
    private List<String> tagApplyStateIds;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy/MM/dd HH:mm:ss")
    @TableField(exist = false)
    private Date beginTime;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy/MM/dd HH:mm:ss")
    @TableField(exist = false)
    private Date endTime;

    @TableField(exist = false)
    private List<List<String>> order;

    public LabelApplication(String id) {
        this.id = id;
    }

    public LabelApplication() {
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Date getDataTime() {
        return dataTime;
    }

    public void setDataTime(Date dataTime) {
        this.dataTime = dataTime;
    }

    public String getProviderId() {
        return providerId;
    }

    public void setProviderId(String providerId) {
        this.providerId = providerId;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getTagApplyStateId() {
        return tagApplyStateId;
    }

    public void setTagApplyStateId(String tagApplyStateId) {
        this.tagApplyStateId = tagApplyStateId;
    }

    public String getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public Date getcTime() {
        return cTime;
    }

    public void setcTime(Date cTime) {
        this.cTime = cTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Double getAmount() {
        return amount;
    }

    public void setAmount(Double amount) {
        this.amount = amount;
    }

    public String getProviderName() {
        return providerName;
    }

    public void setProviderName(String providerName) {
        this.providerName = providerName;
    }

    public List<LabelApplicationDetail> getDetails() {
        return details;
    }

    public void setDetails(List<LabelApplicationDetail> details) {
        this.details = details;
    }

    public List<String> getTagApplyStateIds() {
        return tagApplyStateIds;
    }

    public void setTagApplyStateIds(List<String> tagApplyStateIds) {
        this.tagApplyStateIds = tagApplyStateIds;
    }

    public Date getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(Date beginTime) {
        this.beginTime = beginTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public List<List<String>> getOrder() {
        return order;
    }

    public void setOrder(List<List<String>> order) {
        this.order = order;
    }

    public Long getTagNumber() {
        return tagNumber;
    }

    public void setTagNumber(Long tagNumber) {
        this.tagNumber = tagNumber;
    }
}
