package cn.com.countrygarden.bi.main.dto.mediaResource;

import cn.com.countrygarden.bi.main.util.entity.BaseDto;
import cn.com.countrygarden.bi.main.util.entity.DateToStringSerializerJackJson;
import cn.com.countrygarden.bi.main.util.entity.StringToDateSerializerJackJson;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Getter;
import lombok.Setter;

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

/**
 * <pre>
 *  媒体资源订单
 * </pre>
 *  
 * @author ferren  liao-r@neusoft.com
 * @version 1.00.00
 * <p>
 * <p>
 * <pre>
 * 修改记录
 *    修改后版本:     修改人：  修改日期:     修改内容:
 * </pre>
 */
@Getter
@Setter
public class MediaOrderDto extends BaseDto {
    /**
     * 订单id
     */
    private String orderId;
    /**
     * 订单编号
     */
    private String orderCode;
    /**
     * 开始时间(订单的时间)
     */
    @JsonDeserialize(using= StringToDateSerializerJackJson.class)
    @JsonSerialize(using= DateToStringSerializerJackJson.class)
    private Date orderStartDate;
    /**
     * 结束时间(订单的时间)
     */
    @JsonDeserialize(using= StringToDateSerializerJackJson.class)
    @JsonSerialize(using= DateToStringSerializerJackJson.class)
    private Date orderEndDate;
    /**
     * 资源合同金额(整个合同的金额)
     */
    private BigDecimal orderAmount = new BigDecimal(0);
    /**
     * 订单状态
     */
    private Integer orderStatus;
    private String orderStatusName;
    /**
     * 客户id
     */
    private String customerId;
    private Date finalDate;
    private BigDecimal backAmount = new BigDecimal(0);
    private Date signDate;

    private String customerCreateBy;
    // 资源
    private Integer mediaType;
    private String mediaTypeName;
    private String mediaCode;
    private String mediaForm;
    private String mediaFormName;
    private String mediaWidth;
    private String mediaHeight;
    private String mediaUnit;
    private Integer mediaStatus;
    private String mediaPriceUnit; // 单价单位
    private String siteOne;
    private String siteTwo;
    private String organCode;
    private String organName;
    private String commId;
    private String commName;
    private String commAddress;
    // 客户
    private Integer customerType;
    private String customerTypeName;
    private String customerName;
    private String contactPhone;
    private String contactName;
    // 明细
    private List<MediaOrderBillDto> orderBillDtos = new ArrayList<>();

    // 额外
    private String orderStartDateStr; // 开始时间
    private String orderEndDateStr; // 结束时间
    private String orderFinalDateStr;
    private Date currentDate; // 当前时间
}
