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.JsonIgnore;
import lombok.Getter;
import lombok.Setter;

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

/**
 * 项目名: yhlxj11111111
 * 文件名: UserMirrorTicketView
 * 创建者: JavaZou
 * 创建时间:2025/7/25 16:11
 */
@SearchBean(tables = "groups_relation gr left join groups_trips gt on gt.id = gr.groups_id " +
		"left join goods_don_sku sku on gt.sku_id = sku.id " +
		"left join goods_don g on g.id = sku.goods_id "
)
@Getter
@Setter
public class UserMirrorTicketView {
	@DbField("g.id")
	private Long goodsId;

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

	@DbField("g.status")
	private Boolean goodsStatus;

	@DbField("sku.status")
	private Boolean skuStatus;

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

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

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

	@DbField("sku.sub_title")
	private String subTitle;

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

	@DbField("gr.id")
	private Long relationId;

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

	@DbField("gr.groups_id")
	private Long groupId;

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

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

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

	@DbField("gt.status")
	private String groupsStatus;

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

	@DbField("gr.start_time")
	private Date startTime;

	@DbField("gr.expiry_time")
	private Date expiryTime;

	@DbIgnore
	private Long total;

	@DbIgnore
	private String expiryTimeStr;

	@DbField("gr.status")
	private String status;

	/**
	 * 店铺id
	 */
	@DbField("gr.yhs_id")
	private Long yhsId;

	/**
	 * 店铺类型
	 * 0无 1.普通店铺 2.镜像店铺
	 */
	@DbField("gr.cmt")
	private Integer cmt;

	/**
	 * 车票获取类型 默认1购买,2.体验 3.镜像裂变
	 */
	@DbField("gr.aq_type")
	private Integer aqType;

	/**
	 * 是否是VIP
	 */
	@DbField("gr.is_vip")
	private Boolean isVip;

	@DbIgnore
	private Date payTime;

	@DbIgnore
	private String remainDays;

	@DbField("sku.price")
	private BigDecimal price;

	/**
	 * 是否为镜像服务
	 */
	@DbField("sku.is_mirror")
	private Boolean isMirror;

	/**
	 * 是否为镜像车队服务
	 */
	@DbField("sku.is_car")
	private Boolean isCar;


	/**
	 * mj fast次数
	 */
	@DbField("sku.mj_fast_num")
	private Integer mjFastNum;


	/**
	 * mj relax次数
	 */
	@DbField("sku.mj_relax_num")
	private Integer mjRelaxNum;

	/**
	 * 镜像限制次数
	 */
	@DbField("sku.gpt_limit_num")
	private Integer gptLimitNum;

	/**
	 * luma 次数
	 */
	@DbField("sku.luma_num")
	private Integer lumaNUm;

	/**
	 * deepseek限制次数
	 */
	@DbField("sku.ds_limit_num")
	private Integer dsLimitNum;

	/**
	 * deepseek限制时间
	 */
	@DbField("sku.ds_limit_time")
	private Long dsLimitTime;

	/**
	 * 其他模型限制次数
	 */
	@DbField("sku.other_limit_num")
	private Integer otherLimitNum;

	/**
	 * 其他模型限制时间
	 */
	@DbField("sku.other_limit_time")
	private Long otherLimitTime;

	/**
	 * mj 套餐包最低单价
	 */
	@DbIgnore
	private BigDecimal mjPackagePrice;

	/**
	 * luma 套餐包最低单价
	 */
	@DbIgnore
	private BigDecimal lumaPackagePrice;

	/**
	 * 用户 mj fast次数
	 */
	@DbIgnore
	private Integer mjUserFastNum;

	/**
	 * 用户 mj 加量包次数
	 */
	@DbIgnore
	private Integer mjUserUpgradeNum;


	/**
	 * 用户 mj relax次数
	 */
	@DbIgnore
	private Integer mjUserRelaxNum;

	/**
	 * gpt 用户镜像限制次数
	 */
	@DbIgnore
	private Integer gptUserLimitNum;

	/**
	 * gpt 用户镜像限制时间
	 */
	@DbIgnore
	private Long gptUserLimitTime;

	/**
	 * luma 用户次数
	 */
	@DbIgnore
	private Integer lumaUserNum;

	/**
	 * deepseek限制次数
	 */
	@DbIgnore
	private Integer userDsLimitNum;

	/**
	 * deepseek限制时间
	 */
	@DbIgnore
	private Long userDsLimitTime;

	/**
	 * 其他模型限制次数
	 */
	@DbIgnore
	private Integer userOtherLimitNum;

	/**
	 * 其他模型限制时间
	 */
	@DbIgnore
	private Long userOtherLimitTime;

	/**
	 * 镜像token
	 */
	@DbIgnore
	private String userToken;

	@DbIgnore
	private Long use;

	/**
	 * 是否可升级套餐 （标准，专业）
	 */
	@DbIgnore
	private Boolean upgrade;

	@DbIgnore
	private Long packageId;

	/**
	 * 目前已升级套餐价格
	 */
	@DbIgnore
	private BigDecimal packagePrice;

	@DbIgnore
	private DistributePosterGoodsDetailView posterInfo;

	/**
	 * 是否是续费升级
	 */
	@DbIgnore
	private Boolean isRenewPackage;

	/**
	 * 续费升级规格id
	 */
	@DbIgnore
	private Long renewSkuId;

	/**
	 * 续费升级目前规格
	 */
	@DbIgnore
	private GoodsDonSkuRenewView renewSku;

	/**
	 * 续费升级折扣
	 */
	@DbIgnore
	private BigDecimal discount;

	/**
	 * gpt模式 0旧版 1新版
	 */
	@DbIgnore
	private Integer model;

	/**
	 * 订单id
	 */
	@DbIgnore
	private Long orderId;
}
