package com.cyksj.model.views;

import com.ejlchina.searcher.bean.DbField;
import com.ejlchina.searcher.bean.DbIgnore;
import com.ejlchina.searcher.bean.SearchBean;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;

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

/*
 *项目名: netflix
 *文件名: GoodsDonSkuFrontView
 *创建者: JavaZou
 *创建时间:2023/4/6 17:58
 */
@Getter
@Setter
@SearchBean(tables = "goods_don_sku sku")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GoodsDonSkuFrontView {

	private Long id;

	private Long goodsId;


	private String subTitle;

	/**
	 * 商品规格 ids
	 */
	private String specIds;

	/**
	 * 商品规格 value
	 */
	private String specVal;

	/**
	 * 商品规格 json
	 */
	private String specJson;

	/**
	 * 规格说明信息
	 */
	private String notifyText;

	/**
	 * H5标签
	 */
	private String mobileTags;

	/**
	 * 规格背景图
	 */
	private String img;

	/**
	 * 规格框提示
	 */
	private String smallMsg;

	/**
	 * 商品预览图
	 */
	private String picture;

	/**
	 * 商品详情图
	 */
	private String detail;

	/**
	 * 标签
	 */
	private String tags;


	/**
	 * true 上架 / false 下架
	 */
	private Boolean status;

	/**
	 * 价格
	 */
	private BigDecimal price = BigDecimal.ZERO;

	/**
	 * 渠道优惠折扣
	 */
	@DbIgnore
	private BigDecimal channelDiscount;

	/**
	 * 优惠价格
	 */
	@DbIgnore
	private BigDecimal discountPrice;

	/**
	 * 优惠折扣
	 */
	@DbIgnore
	private BigDecimal discount;

	/**
	 * 满减金额
	 */
	@DbIgnore
	private BigDecimal reduceMoney;

	/**
	 * 优惠券有效结束时间
	 */
	@DbIgnore
	private Date validEndTime;

	/**
	 * 优惠券id
	 */
	@DbIgnore
	private Long couponId;

	/**
	 * 支付来源
	 * 0全无 1.优惠券 2.渠道 3特定价格
	 */
	@DbIgnore
	private Integer source = 0;

	/**
	 * 专属用户规格
	 */
	private String userOwns;

	/**
	 * 月数
	 */
	private Integer months;

	/**
	 * 天数
	 */
	private Integer days;

//	@DbField("case when spec_val like '%月%' and spec_val not like '%年%' then 0 when spec_val like '%季%' then 1 when spec_val like '%半年%' then 2 when spec_val like '%年%' then 3 else 66 end")
//	private Integer orderBy;

	private Boolean isDp;

	/**
	 * 优惠加购商品
	 */
	@DbIgnore
	private List<GoodsDiscountPlusPurchaseRelationFrontView> dpSkuViews;

	/**
	 * 特定价格
	 */
	private BigDecimal specificPrice;

	/**
	 * 特定购买平台
	 */
	private String specificGoodsIds;

	/**
	 * 排序
	 */
	private Integer sorted;

	@DbField("sku.num")
	private Integer skuNum;

	/**
	 * 限制次数
	 */
	private Integer gptLimitNum;

	/**
	 * 限制时间
	 */
	private Long gptLimitTime;


	/**
	 * mj fast次数
	 */
	private Integer mjFastNum;

	/**
	 * mj relax次数
	 */
	private Integer mjRelaxNum;

	private Boolean isCar;

	private Boolean isMirror;

	private Integer lumaNum;

	private String remark;

	/**
	 * deepseek限制次数
	 */
	private Integer dsLimitNum;

	/**
	 * deepseek限制时间
	 */
	private Long dsLimitTime;

	/**
	 * 其他模型限制次数
	 */
	private Integer otherLimitNum;

	/**
	 * 其他模型限制时间
	 */
	private Long otherLimitTime;

	/**
	 * claude code每日限额
	 */
	private Integer claudeDailyLimit;

	/**
	 * Claude code 服务总额度
	 */
	private Integer claudeQuota;

	/**
	 * nano总配额次数
	 */
	private Integer nanoQuota;

	/**
	 * cc最高约可使用次数
	 */
	private Integer highestUsage;

	/**
	 * 是否赠送codex
	 */
	private Boolean isCodex;

	/**
	 * codex套餐名
	 */
	private String codexPlanName;

	/**
	 * 每日预算上限
	 */
	private Integer openaiDailyLimit;

	/**
	 * 每月预算上限
	 */
	private Integer openaiQuota;
}
