package shop.alien.entity.store;

import com.baomidou.mybatisplus.annotation.*;
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 java.util.Date;

/**
 * 二期-门店信息
 *
 * @author ssk
 * @since 2024-12-05
 */
@Data
@JsonInclude
@TableName("store_info")
@ApiModel(value = "StoreInfo对象", description = "门店信息")
public class StoreInfo {

    /** 注销标记：0-未注销 */
    public static final int LOGOUT_FLAG_NORMAL = 0;
    /** 注销标记：1-已注销 */
    public static final int LOGOUT_FLAG_DONE = 1;
    /** 注销标记：2-注销冷静期 */
    public static final int LOGOUT_FLAG_COOLING = 2;

    /** 营业状态：0-正常营业 */
    public static final int BUSINESS_STATUS_NORMAL = 0;
    /** 营业状态：1-暂停营业（注销冷静期） */
    public static final int BUSINESS_STATUS_PAUSE = 1;
    /** 营业状态：99-永久关门（注销完成） */
    public static final int BUSINESS_STATUS_PERMANENT_CLOSE = 99;

    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "门店名称")
    @TableField("store_name")
    private String storeName;

    @ApiModelProperty(value = "营业状态(-1:注销中, 0:正常营业, 1:暂停营业, 2:筹建中, 99:永久关门)")
    @TableField("business_status")
    private Integer businessStatus;

    @ApiModelProperty(value = "门店电话")
    @TableField("store_tel")
    private String storeTel;

    @ApiModelProperty(value = "容纳人数")
    @TableField("store_capacity")
    private String storeCapacity;

    @ApiModelProperty(value = "门店面积(1:小于20平米, 2:20~50平米, 3:50~100平米, 4:100~300平米, 5:500~1000平米, 6:大于1000平米)")
    @TableField("store_area")
    private Integer storeArea;

    @ApiModelProperty(value = "门店地址")
    @TableField("store_address")
    private String storeAddress;

    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
    @TableField("delete_flag")
    @TableLogic
    private Integer deleteFlag;

    @ApiModelProperty(value = "创建时间")
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdTime;

    @ApiModelProperty(value = "创建人ID")
    @TableField("created_user_id")
    private Integer createdUserId;

    @ApiModelProperty(value = "修改时间")
    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updatedTime;

    @ApiModelProperty(value = "修改人ID")
    @TableField("updated_user_id")
    private Integer updatedUserId;

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

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

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

    @ApiModelProperty(value = "到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("expiration_time")
    private Date expirationTime;

    @ApiModelProperty(value = "门店坐标")
    @TableField("store_position")
    private String storePosition;

    @ApiModelProperty(value = "门店密码")
    @TableField("store_pass")
    private String storePass;

    @ApiModelProperty(value = "密码状态, 0:初始密码, 1:已修改")
    @TableField("pass_type")
    private Integer passType;

    @ApiModelProperty(value = "门店状态, 见字典表 storeStatus")
    @TableField("store_status")
    private Integer storeStatus;

    @ApiModelProperty(value = "经营板块id（1-特色美食，2-休闲娱乐，3-生活服务）")
    @TableField("business_section")
    private Integer businessSection;

    @ApiModelProperty(value = "经营板块名称")
    @TableField("business_section_name")
    private String businessSectionName;

    @ApiModelProperty(value = "经营种类ids（废弃）")
    @TableField("business_types")
    private String businessTypes;

    @ApiModelProperty(value = "经营种类名称s")
    @TableField("business_types_name")
    private String businessTypesName;

    @ApiModelProperty(value = "店铺申请审核状态(0:待审核，1:审核通过，2：审核失败)")
    @TableField("store_application_status")
    private Integer storeApplicationStatus;

    @ApiModelProperty(value = "查询经纬度时查询地点存储")
    @TableField("query_address")
    private String queryAddress;

    @ApiModelProperty(value = "行政区域省名称")
    @TableField("administrative_region_province_name")
    private String administrativeRegionProvinceName;

    @ApiModelProperty(value = "行政区域省adcode")
    @TableField("administrative_region_province_adcode")
    private String administrativeRegionProvinceAdcode;

    @ApiModelProperty(value = "行政区域市名称")
    @TableField("administrative_region_city_name")
    private String administrativeRegionCityName;

    @ApiModelProperty(value = "行政区域市adcode")
    @TableField("administrative_region_city_adcode")
    private String administrativeRegionCityAdcode;

    @ApiModelProperty(value = "行政区域区名称")
    @TableField("administrative_region_district_name")
    private String administrativeRegionDistrictName;

    @ApiModelProperty(value = "行政区域区adcode")
    @TableField("administrative_region_district_adcode")
    private String administrativeRegionDistrictAdcode;

    @ApiModelProperty(value = "注销标记, 0:未注销, 1:已注销")
    @TableField("logout_flag")
    private Integer logoutFlag;

    @ApiModelProperty(value = "注销原因")
    @TableField("logout_reason")
    private String logoutReason;

    @ApiModelProperty(value = "注销申请时间")
    @TableField(value = "logout_time", fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date logoutTime;

    @ApiModelProperty(value = "抽成比例")
    @TableField("commission_rate")
    private String commissionRate;

    @ApiModelProperty(value = "原因")
    @TableField("reason")
    private String reason;

    @ApiModelProperty(value = "注销code")
    @TableField("logout_code")
    private String logoutCode;

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

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

    @ApiModelProperty(value = "图片模式")
    @TableField("img_mode")
    private Integer ImgMode;

    @ApiModelProperty(value = "收藏数")
    @TableField("collect_num")
    private Integer collectNum;

    @TableField(exist = false)
    private String dist;

    @ApiModelProperty(value = "口味评分")
    @TableField("taste_score")
    private Double tasteScore;

    @ApiModelProperty(value = "环境评分")
    @TableField("en_score")
    private Double enScore;

    @ApiModelProperty(value = "服务评分")
    @TableField("service_score")
    private Double serviceScore;

    @ApiModelProperty(value = "评分")
    @TableField("score_avg")
    private Double scoreAvg;

    @ApiModelProperty(value = "食品经营许可证状态")
    @TableField("food_licence_status")
    private Integer foodLicenceStatus;

    @ApiModelProperty(value = "食品经营许可证失败原因")
    @TableField("food_licence_reason")
    private String foodLicenceReason;

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

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

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

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

    @ApiModelProperty(value = "分类名称（废弃）")
    @TableField("business_classify_name")
    private String businessClassifyName;

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

    @ApiModelProperty(value = "娱乐经营许可证状态")
    @TableField("entertainment_licence_status")
    private Integer entertainmentLicenceStatus;

    @ApiModelProperty(value = "娱乐经营许可证失败原因")
    @TableField("entertainment_licence_reason")
    private String entertainmentLicenceReason;

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

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

    @ApiModelProperty(value = "续签合同到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("renew_contract_expiration_time")
    private Date renewContractExpirationTime;

    @ApiModelProperty(value = "营业执照状态 字典 foodLicenceStatus")
    @TableField("business_license_status")
    private Integer businessLicenseStatus;

    @ApiModelProperty(value = "营业执照失败原因")
    @TableField("business_license_reason")
    private String businessLicenseReason;

    @ApiModelProperty(value = "营业执照到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("business_license_expiration_time")
    private Date businessLicenseExpirationTime;

    @ApiModelProperty(value = "变更营业执照提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("update_business_license_time")
    private Date updateBusinessLicenseTime;

    @ApiModelProperty(value = "身份证状态 字典 foodLicenceStatus")
    @TableField("id_card_status")
    private Integer idCardStatus;

    @ApiModelProperty(value = "身份证审核失败原因")
    @TableField("id_card_reason")
    private String idCardReason;

    @ApiModelProperty(value = "身份证到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("id_card_expiration_time")
    private Date idCardExpirationTime;

    @ApiModelProperty(value = "变更身份证提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("update_id_card_time")
    private Date updateIdCardTime;

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

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

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

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

    @ApiModelProperty(value = "头图审核状态(1-审核通过, 2-审核不通过)")
    @TableField("head_img_status")
    private Integer headImgStatus;

    @ApiModelProperty(value = "店铺评价")
    @TableField("store_evaluate")
    private String storeEvaluate;

    @ApiModelProperty(value = "经营种类名称")
    @TableField("business_type_name")
    private String businessTypeName;

    @ApiModelProperty(value = "经营类目名称")
    @TableField("business_category_name")
    private String businessCategoryName;

    @ApiModelProperty(value = "评价1")
    @TableField("score_one")
    private Double scoreOne;
     @ApiModelProperty(value = "评价2")
    @TableField("score_two")
    private Double scoreTwo;
     @ApiModelProperty(value = "评价3")
    @TableField("score_three")
    private Double scoreThree;

    @ApiModelProperty(value = "门店类型（0-其他，1-装修公司）")
    @TableField("store_tickets")
    private Integer storeTickets;

    @ApiModelProperty(value = "餐具费(限2位正整数)")
    @TableField("tableware_fee")
    private Integer tablewareFee;

    @ApiModelProperty(value = "预约服务 0不提供 1提供")
    @TableField("booking_service")
    private Integer bookingService;

    @ApiModelProperty(value = "微信支付特约商户号（服务商进件审核通过后回写 sub_mchid）")
    @TableField("wechat_sub_mchid")
    private String wechatSubMchid;

    @ApiModelProperty(value = "支付宝支付特约商户号（服务商进件审核通过后回写 smid）")
    @TableField("alipay_smid")
    private String alipaySmid;

//    @ApiModelProperty(value = "评价首次突破10条  状态为1   未突破为 0  默认为0")
//    @TableField("break_ten")
//    private Integer breakTen;

}
