package shop.alien.entity.store.vo;

import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import shop.alien.entity.store.StoreBusinessInfo;
import shop.alien.entity.store.StoreInfo;

import java.util.Date;
import java.util.List;
import java.util.Map;

@EqualsAndHashCode(callSuper = true)
@Data
@JsonInclude
@NoArgsConstructor
@ApiModel(value = "StoreInfoVo对象", description = "商家信息")
public class StoreInfoVo extends StoreInfo {

    @ApiModelProperty(value = "主键")
    private Integer id;

    @ApiModelProperty(value = "商户ID")
    private Integer storeId;

    @ApiModelProperty(value = "商家名称")
    private String storeName;

    @ApiModelProperty(value = "商家头像")
    private String imgUrl;

    @ApiModelProperty(value = "商家入口图")
    private String entranceImage;

    @ApiModelProperty(value = "联系人")
    private String storeContact;

    @ApiModelProperty(value = "联系人电话")
    private String storePhone;

    @ApiModelProperty(value = "联系人身份证号")
    private String idCard;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "门店状态字符串")
    private String storeStatusStr;

    @ApiModelProperty(value = "营业状态字符串")
    private String businessStatusStr;

    @ApiModelProperty(value = "门店状态字符串")
    private String storeTypeStr;

    @ApiModelProperty(value = "商家评分")
    private double score;

    @ApiModelProperty(value = "是否连锁, 0:否, 1:是")
    private Integer isChain;

    @ApiModelProperty(value = "门店类型(1:中餐, 2:烧烤, 3:饮品, 4:甜点, 5:火锅, 6:宵夜, 7:西餐, 8:轻食, 9:水果)")
    private List<String> storeTypeList;

    @ApiModelProperty(value = "门店坐标经度")
    private String storePositionLongitude;

    @ApiModelProperty(value = "门店坐标纬度")
    private String storePositionLatitude;

    @ApiModelProperty(value = "token")
    private String token;

    private double distance;

    private String dishName;

    @ApiModelProperty(value = "门店简介")
    private String storeBlurb;

    @ApiModelProperty(value = "门店过期状态（0：已到期，1：未到期）")
    private String expiredState;

    @ApiModelProperty(value = "经营板块id(词典表 键为 business_section)")
    private Integer businessSection;

    @ApiModelProperty(value = "用户账号")
    private String userAccount;

    @ApiModelProperty(value = "经营种类集合")
    private List<String> businessTypesList;

    @ApiModelProperty(value = "营业执照图片地址")
    private List<String> businessLicenseAddress;

    @ApiModelProperty(value = "合同图片地址")
    private List<String> contractImageList;

    @ApiModelProperty(value = "续签合同图片地址")
    private List<String> renewContractImageList;

    @ApiModelProperty(value = "经营许可证审核通过图片地址")
    private List<String> foodLicenceImageList;

    @ApiModelProperty(value = "经营许可证审核未通过图片地址")
    private List<String> notPassFoodLicenceImageList;

    @ApiModelProperty(value = "过期天数")
    private Long daysToExpire;

    @ApiModelProperty(value = "前端查询集合Label")
    private String Label;

    @ApiModelProperty(value = "前端查询集合Value")
    private Integer value;

    @ApiModelProperty(value = "营业状态, 见字典表 businessStatus")
    private Integer businessStatus;

    @ApiModelProperty(value = "平均得分")
    private String avgScore;

    @ApiModelProperty(value = "人均消费")
    private String avgPrice;

    @ApiModelProperty(value = "总评论数")
    private String totalNum;

    @ApiModelProperty(value = "优惠券列表")
    private List quanList;

    @ApiModelProperty(value = "营业时间")
    private List<String> openTime;

    @ApiModelProperty(value = "最近地铁站名")
    private String subwayName;

    @ApiModelProperty(value = "最近地铁站距离")
    private double distance2;

    @ApiModelProperty(value = "是否收藏")
    private Integer collection;

    @ApiModelProperty(value = "优惠券列表")
    private List<LifeCouponVo> couponList;

    @ApiModelProperty(value = "团购套餐列表")
    private List<LifeGroupBuyMainVo> tuangouList;

//    @ApiModelProperty(value = "员工列表")
//    private List<StoreStaffConfig> employeeList;

    @ApiModelProperty(value = "该用户是否在该店铺打过卡")
    private Integer clockInStore;

    @ApiModelProperty(value = "该用户是否在该店铺打过卡")
    private Integer clockInStoreToday;

    @ApiModelProperty(value = "该用户在该店铺打卡次数")
    private Integer clockInStoreNum;

    @ApiModelProperty(value = "该用户打卡的所有哦店铺次数")
    private Integer clockInNum;

    @ApiModelProperty(value = "该用户在该店铺的动态")
    private List<LifeUserDynamicsVo> dynamicsList;

    @ApiModelProperty(value = "该用户在该店铺的动态总数")
    private Integer totalDynamicsNum;

    private StoreBusinessInfo storeBusinessInfo;
    private List<StoreBusinessInfo> storeBusinessInfos;

    @ApiModelProperty(value = "是否营业中(0否1是)")
    private Integer yyFlag;

    @ApiModelProperty(value = "验证码")
    private String verificationCode;

    @ApiModelProperty(value = "经营许可证到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date foodLicenceExpirationTime;

    @ApiModelProperty(value = "变更经营许可证提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date  updateFoodLicenceTime;

    @ApiModelProperty(value = "变更续签合同提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date  updateRenewContractTime;

    @ApiModelProperty(value = "商户姓名")
    private String storeUserName;

    @ApiModelProperty(value = "经营许可证剩余天数")
    private String foodLicenceRemainingDays;

    @ApiModelProperty(value = "经营许可证是否到期状态 已到期 未到期 即将到期")
    private String foodLicenceExpireStatus;

    private List<Map<String, Object>> quanMapList;

    private String storeClockInCount;

    private String commitCount;

    @ApiModelProperty(value = "食品经营许可")
    private String foodLicenceImageUrl;

    @ApiModelProperty(value = "动态数量")
    private Integer dynamicsNum;

    @ApiModelProperty(value = "推荐列表距离(米)")
    private String distance3;

    @ApiModelProperty(value = "店铺头图（多图列表）")
    private List<String> storeAlbumUrlList;

    @ApiModelProperty(value = "分类id(词典表 键为 business_classify)(多个ID用逗号拼接)")
    private String businessClassify;

    @ApiModelProperty(value = "分类名称")
    private String businessClassifyName;

    @ApiModelProperty(value = "分类id(词典表 键为 business_classify)(多个ID用逗号拼接)")
    private List<String> businessClassifyList;

    @ApiModelProperty(value = "分类名称")
    private List<String> businessClassifyNameList;

    @ApiModelProperty(value = "是否提供餐食")
    private Integer  mealsFlag;

    @ApiModelProperty(value = "身份证正面")
    private JSONObject idcardFace;
    @ApiModelProperty(value = "身份证反面")
    private JSONObject idcardBack;
    @ApiModelProperty(value = "经营许可证")
    private JSONObject jyxkz;
    @ApiModelProperty(value = "食品经营许可证")
    private JSONObject foodLicence;
    @ApiModelProperty(value = "娱乐经营许可证")
    private JSONObject entertainmentLicence;

    @ApiModelProperty(value = "人工复核状态(1:通过,2:拒绝)")
    private Integer manualReviewStatus;

    @ApiModelProperty(value = "人工复核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date manualReviewTime;

    @ApiModelProperty(value = "人工复核原因")
    private String manualReviewReason;

    @ApiModelProperty(value = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date reviewDate;

    @ApiModelProperty(value = "续签合同状态")
    private Integer renewContractStatus;

    @ApiModelProperty(value = "续签合同拒绝原因")
    private String contractReason;

}
