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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Getter;
import lombok.Setter;

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

/**
 * <pre>
 *  媒体资源订单明细
 * </pre>
 *  
 * @author ferren  liao-r@neusoft.com
 * @version 1.00.00
 * <p>
 * <p>
 * <pre>
 * 修改记录
 *    修改后版本:     修改人：  修改日期:     修改内容:
 * </pre>
 */
@Getter
@Setter
public class MediaOrderBillDto extends BaseDto {
    // 订单
    private String orderId; // 订单id
    private String orderCode; // 订单编号
    private Date orderStartDate; // 开始时间(订单的时间)
    private Date orderEndDate; // 结束时间(订单的时间)
    private BigDecimal orderAmount = new BigDecimal(0); // 资源合同金额(整个合同的金额)
    private int orderStatus; // 订单状态
    private String orderStatusName;
    private String customerId; // 客户id
    // 资源
    private String mediaId;
    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 String mediaPriceUnit; // 单价单位
    private Integer mediaStatus;
    private String mediaStatusName;
    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 String orderBillId;
    private Date prepareStartDate; // 预定开始时间 
    private Date prepareEndDate; // 预定结束时间 
    private Date lockStartDate; // 锁定开始时间 
    private Date lockEndDate; // 锁定结束时间 
    private Date useStartDate; // 使用开始时间 
    private Date useEndDate; // 使用结束时间 
    private Date finalDate; // 终止时间 
    private Integer isFinal; // 状态(1: 终止 0: 启用  冗余字段)
    private Integer cycleStatus; // 周期
    private String cycleStatusName;
    private BigDecimal orderBillAmount = new BigDecimal(0); // 订单明细金额
    @JsonSerialize(using= DateToStringSerializerJackJson.class)
    private Date orderBillStartDate;
    @JsonSerialize(using= DateToStringSerializerJackJson.class)
    private Date orderBillEndDate;
    private BigDecimal orderBillUnitAmount = new BigDecimal(0);

    // 参数
    private String orderBillStartDateStr; // 订单明细开始时间
    private String orderBillEndDateStr; // 订单明细结束时间
}
