package com.cyksj.model.manage.views;

import com.cyksj.model.entity.GoodsDon;
import com.cyksj.model.entity.OrderDon;
import com.cyksj.model.entity.OrderDonWaybill;
import com.cyksj.model.views.GoodsDonSkuView;
import com.ejlchina.searcher.bean.DbField;
import com.ejlchina.searcher.bean.DbIgnore;
import com.ejlchina.searcher.bean.SearchBean;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;

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

/*
 *项目名: netflix
 *文件名: OrderDonSearchView
 *创建者: JavaZou
 *创建时间:2023/7/28 16:21
 */
@Getter
@Setter
@SearchBean(tables = "(select * from order_don :orderId:) o left join goods_don_sku sku on o.sku_id = sku.id " +
		"left join goods_don g on g.id = o.goods_id " +
		"left join order_don_transport odt on odt.order_id = o.id")
public class OrderDonSearchView {
	@DbField("o.id")
	private Long id;

	@DbField("o.relation_id")
	private Long relationId;

	@DbField("g.type")
	private Integer goodsDonType;

	@DbField("g.second_type")
	private Integer secondType;

	@DbField("o.order_no")
	private String orderNo;

	@DbField("g.logo")
	private String logo;

	@DbField("g.title")
	private String title;

	@DbField("g.id")
	private Long goodsId;

	@DbField("g.pay_desc")
	private String payDesc;

	@DbField("sku.is_benefits")
	private Boolean isBenefits;

	@DbField("sku.id")
	private Long skuId;

	@DbField("sku.benefits_list")
	@JsonIgnore
	private String benefitsList;

	@DbField("sku.spec_val")
	private String specVal;

	@DbField("o.order_type")
	private Integer orderType;

	@DbField("sku.months")
	private Integer months;

	@DbField("o.user_id")
	@JsonIgnore
	private Long userId;

	@DbField("o.money")
	private BigDecimal money;

	@DbField("o.refund_money")
	@JsonIgnore
	private BigDecimal refundMoney;

	@DbField("o.balance")
	private BigDecimal balance;

	@DbField("o.coupon_money")
	private BigDecimal couponMoney;

	@DbField("o.refund_desc")
	private String refundDesc;

	@DbField("o.status")
	private OrderDon.Status status;

	@DbField("o.type")
	private OrderDon.Type type;

	@DbField("o.num")
	private Integer num;

	@DbField("o.created_time")
	private Date createdTime;

	@DbField("o.pay_time")
	private Date payTime;

	/**
	 * 收货人
	 */
	@DbField("odt.receiver")
	private String receiver;

	/**
	 * 手机号
	 */
	@DbField("odt.phone")
	private String phone;

	/**
	 * 省份
	 */
	@DbField("odt.province")
	private String province;

	/**
	 * 城市
	 */
	@DbField("odt.city")
	private String city;

	/**
	 * 区/县
	 */
	@DbField("odt.district")
	private String district;

	/**
	 * 详细地址
	 */
	@DbField("odt.address")
	private String address;

	@DbField("g.special_type")
	private GoodsDon.SpecialType specialType;

	@DbIgnore
	private OrderDonWaybill waybill;

	/**
	 * 是否可领取实物购买权益
	 */
	@DbIgnore
	private Boolean isHasBenefits;

	@DbIgnore
	private List<GoodsDonSkuView> benefitsViews;

	@DbField("o.pay_title")
	private String payTitle;

	/**
	 * 关联兑换码
	 */
	@DbField("o.ex_code")
	private String exCode;

	@DbField("sku.is_mirror")
	private Boolean isMirror;

	/**
	 * 原先规格
	 */
	@DbIgnore
	private String oriSpecVal;
}
