package shop.alien.entity.store;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 门店草稿
 * </p>
 *
 * @author ssk
 * @since 2025-06-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="StoreInfoDraft对象", description="门店草稿")
public class StoreInfoDraft extends Model<StoreInfoDraft> {

    private static final long serialVersionUID = 1L;

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

    @ApiModelProperty(value = "商家用户id（store_user 表 id）")
    @TableField("store_user_id")
    private Integer storeUserId;

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

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

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

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

    @ApiModelProperty(value = "门店面积, 见字典表 storeArea")
    @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)
    private Date createdTime;

    @ApiModelProperty(value = "创建人ID")
    @TableField(value = "created_user_id", fill = FieldFill.INSERT)
    private Integer createdUserId;

    @ApiModelProperty(value = "修改时间")
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private Date updatedTime;

    @ApiModelProperty(value = "修改人ID")
    @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
    private Integer updatedUserId;

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

    @ApiModelProperty(value = "门店类型, 多选, 见字典表 storeType")
    @TableField("store_type")
    private String storeType;

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

    @ApiModelProperty(value = "到期时间")
    @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(词典表 键为 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("logout_time")
    private Date logoutTime;

    @ApiModelProperty(value = "营业执照地址")
    @TableField("business_license_url")
    private String businessLicenseUrl;

    @ApiModelProperty(value = "合同地址")
    @TableField("contract_url")
    private String contractUrl;

    @ApiModelProperty(value = "经营许可证地址")
    @TableField("food_licence_url")
    private String foodLicenceUrl;

    @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 = "其它资质证明（多个URL以逗号分隔，最多9张）")
    @TableField("other_licenses")
    private String otherLicenses;

    @ApiModelProperty(value = "其他资质证明图片地址列表")
    @TableField(exist = false)
    private List<String> otherQualificationImages;

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

    @ApiModelProperty(value = "企业名称")
    @TableField("company_name")
    private String companyName;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
