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 {

    @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 Integer 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")
    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(词典表 键为 business_section)")
    @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;
}
