package com.fs.hisStore.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import com.fs.his.vo.FsDoctorVO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * 店铺管理对象 fs_store
 *
 * @author fs
 * @date 2023-06-15
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class FsStoreScrm extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private Long storeId;

    /**
     * 所属城市ids
     */
    private String cityIds;

    /**
     * 店铺名称
     */
    @Excel(name = "店铺名称")
    private String storeName;

    /**
     * 店铺介绍
     */
    @Excel(name = "店铺介绍")
    private String descs;

    /**
     * 店铺LOGO
     */
    @Excel(name = "店铺LOGO")
    private String logoUrl;

    /**
     * 地址
     */
    @Excel(name = "地址")
    private String address;

    /**
     * 经度
     */
    private String lng;

    /**
     * 维度
     */
    private String lat;

    /**
     * 店铺电话
     */
    @Excel(name = "店铺电话")
    private String phone;

    /**
     * 资质证书
     */
    @Excel(name = "资质证书")
    private String licenseImages;

    /**
     * 商品总数
     */
    @Excel(name = "商品总数")
    private Long productCount;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Integer status;

    /**
     * 销量
     */
    @Excel(name = "销量")
    private Long salesCount;

    /**
     * 余额
     */
    @Excel(name = "余额")
    private BigDecimal balance;

    /**
     * 累计金额
     */
    @Excel(name = "累计金额")
    private BigDecimal totalMoney;

    /**
     * 审核状态
     */
    @Excel(name = "审核状态")
    private Integer isAudit;

    /**
     * 登录帐号
     */
    @Excel(name = "登录帐号")
    private String account;

    /**
     * 登录密码
     */
    @Excel(name = "登录密码")
    private String password;

    /**
     * 配送方式 1=配送 ，2=到店自提
     */
    private String shippingType;


    /**
     * 佣金类型
     */
    private Integer brokerageType;

    /**
     * 佣金比例
     */
    private Integer brokerageRate;

    /**
     * 店铺全称
     */
    private String fullName;

    /**
     * 退货联系电话
     */
    private String refundPhone;

    /**
     * 退货地址
     */
    private String refundAddress;

    /**
     * 退货联系人
     */
    private String refundConsignee;

    /**
     * 配送方式
     */
    private Integer deliveryType;

    /**
     * 发货联系电话
     */
    private String sendPhone;

    /**
     * 企业注册地址
     */
    private String enterpriseAddress;

    /**
     * 法人代表姓名
     */
    private String legalPersonName;

    /**
     * 统一社会信用代码
     */
    private String unifiedSocialCreditCode;
    /**
     * 统一社会信用代码失效日期
     */
    private String unifiedSocialCreditCodeExpireEnd;

    /**
     * 经营范围
     */
    private String businessScope;

    /**
     * 可选商品类型列表
     */
    private String selectableProductTypes;

    /**
     * 营业执照图片
     */
    private String businessLicense;

    /**
     * 营业执照有效期开始
     */
    private LocalDate businessLicenseExpireStart;

    /**
     * 营业执照有效期结束
     */
    private LocalDate businessLicenseExpireEnd;

    /**
     * 药品经营许可证
     */
    private String drugLicense;

    /**
     * 药品经营许可证有效期开始
     */
    private LocalDate drugLicenseExpiryStart;

    /**
     * 药品经营许可证有效期结束
     */
    private LocalDate drugLicenseExpiryEnd;

    /**
     * 1类器械生产备案
     */
    private String medicalDevice1;

    /**
     * 1类器械生产备案有效期开始
     */
    private LocalDate medicalDevice1ExpiryStart;

    /**
     * 1类器械生产备案有效期结束
     */
    private LocalDate medicalDevice1ExpiryEnd;

    /**
     * 2类医疗器械备案
     */
    private String medicalDevice2;

    /**
     * 2类医疗器械备案有效期开始
     */
    private LocalDate medicalDevice2ExpiryStart;

    /**
     * 2类医疗器械备案有效期结束
     */
    private LocalDate medicalDevice2ExpiryEnd;

    /**
     * 3类器械经营许可证
     */
    private String medicalDevice3;

    /**
     * 3类器械经营许可证有效期开始
     */
    private LocalDate medicalDevice3ExpiryStart;

    /**
     * 3类器械经营许可证有效期结束
     */
    private LocalDate medicalDevice3ExpiryEnd;

    /**
     * 食品经营许可证
     */
    private String foodLicense;

    /**
     * 食品经营许可证有效期开始
     */
    private LocalDate foodLicenseExpiryStart;

    /**
     * 食品经营许可证有效期结束
     */
    private LocalDate foodLicenseExpiryEnd;

    /**
     * 医疗机构执业许可证
     */
    private String medicalLicense;

    /**
     * 医疗机构执业许可证有效期开始
     */
    private LocalDate medicalLicenseExpiryStart;

    /**
     * 医疗机构执业许可证有效期结束
     */
    private LocalDate medicalLicenseExpiryEnd;

    /**
     * 营业执照是否长期有效（1长期有效、0非长期有效）
     **/
    private Byte isBusinessLicensePermanent;

    /**
     * 1类医疗器械是否长期有效（1长期有效、0非长期有效）
     **/
    private Byte isMedicalDevice1ExpiryPermanent;

    /**
     * 其它资质-入驻协议
     */
    private String settlementAgreement;

    /**
     * 其它资质-入驻协议有效期开始
     */
    private LocalDate settlementAgreementStart;

    /**
     * 其它资质-入驻协议有效期结束
     */
    private LocalDate settlementAgreementEnd;

    /**
     * 质量保证协议
     */
    private String qualityAssuranceAgreement;

    /**
     * 质量保证协议有效期开始
     */
    private LocalDate qualityAssuranceAgreementStart;

    /**
     * 质量保证协议有效期结束
     */
    private LocalDate qualityAssuranceAgreementEnd;

    /**
     * 其它特殊资质
     */
    private String otherSpecialQualification;

    /**
     * 其它特殊资质有效期开始
     */
    private LocalDate otherSpecialQualificationStart;

    /**
     * 其它特殊资质有效期结束
     */
    private LocalDate otherSpecialQualificationEnd;

    /**
     * 用于兼容查询店铺id
     */
    private Long queryStoreId;

    /**
     * 店铺id
     */
    private String storeSeq;

    /**
     * 商家id
     */
    private String merchantId;

    /**
     * 营业执照上传编码
     */
    private String businessCode;

    /**
     * 药品经营许可证编码
     */
    private String drugCode;

    /**
     * 一类器械生产备案文件编码
     */
    private String medicalDevice1Code;

    /**
     * 二类器械生产备案文件编码
     */
    private String medicalDevice2Code;

    /**
     * 三类器械生产备案文件编码
     */
    private String medicalDevice3Code;

    /**
     * 食品经营许可证上传编码
     */
    private String foodCode;

    /**
     * 医疗机构执业许可证上传编码
     */
    private String medicalCode;

    /**
     * 其它特殊资质编码
     */
    private String otherSpecialQualificationCode;

    /**
     * 质量保证协议编码
     */
    private String qualityAssuranceAgreementCode;

    /**
     * 其它资质入驻协议编码
     */
    private String settlementAgreementCode;

    /**
     * 绑定的药剂师
     * **/
    private List<FsDoctorVO> doctorList;

    /**
     * 药品经营许可证是否长期有效（1长期有效、0非长期有效）
     **/
    private Byte isDrugLicensePermanent;

    /**
     * 2类医疗器械备案是否长期有效（1长期有效、0非长期有效）
     **/
    private Byte isMedicalDevice2ExpiryPermanent;

    /**
     * 3类器械经营许可证是否长期有效（1长期有效、0非长期有效）
     **/
    private Byte isMedicalDevice3ExpiryPermanent;

    /**
     * 食品经营许可证有效期（1长期有效、0非长期有效）
     **/
    private Byte isFoodLicenseExpiryPermanent;

    /**
     * 医疗机构执业许可证是否长期有效（1长期有效、0非长期有效）
     **/
    private Byte isMedicalLicenseExpiryPermanent;

    /**
     * 资质更新日期6个月提醒
     * **/
    private LocalDate qualificationUpdateTime;

    /**
     * 资质更新剩余天数
     **/
    private Integer daysDiff;

    //标题名称
    private String titleNameOne;
    private String titleNameTwo;
    private String titleNameThree;
    //协议是否有效
    private Byte isEffectivePermanent1;
    private Byte isEffectivePermanent2;
    private Byte isEffectivePermanent3;

    private String settlementAgreementFileName;
    private String qualityAssuranceAgreementFileName;
    private String otherSpecialQualificationFileName;

    /**
     * 到期天数
     * **/
    @TableField(exist = false)
    private Integer remainDays;

    /**
     * 2类医疗器械经营许可证营业范围
     **/
    private String medicalDevice2BusinessScope;

    /**
     * 3类医疗器械经营许可证营业范围
     **/
    private String medicalDevice3BusinessScope;

    /**
     * 药店经营范围
     **/
    private String drugLicenseBusinessScope;


}
