package org.dromara.system.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.dromara.system.domain.SysTenant;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;


/**
 * 租户视图对象 sys_tenant
 *
 * @author Michelle.Chung
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysTenant.class)
public class SysTenantVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "id")
    @TableId(value = "id")
    private Long id;

    @Schema(description = "租户编号")
    private String tenantId;

    @Schema(description = "所有父级id")
    private String parentIds;

    @Schema(description = "企业名称")
    private String companyName;

    @Schema(description = "统一社会信用代码")
    private String licenseNumber;

    @Schema(description = "地址")
    private String address;

    @Schema(description = "域名")
    private String domain;

    @Schema(description = "企业简介")
    private String intro;

    @Schema(description = "用户数量（-1不限制）")
    private Long accountCount;

    @Schema(description = "租户状态（0正常 1停用）")
    private String status;

    @Schema(description = "删除标志（0代表存在 1代表删除）")
    @TableLogic
    private String delFlag;

    @Schema(description = "代理机构名称")
    private String agencyName;

    @Schema(description = "营业执照编号")
    private String businessLicense;

    @Schema(description = "入驻时间")
    private LocalDateTime joinTime;

    @Schema(description = "营业执照附件")
    private String attachment;

    @Schema(description = "推广附件")
    private String promoteList;

    @Schema(description = "营业执照有效期")
    private LocalDateTime expireTime;

    @Schema(description = "店铺名称")
    private String shopName;

    @Schema(description = "企业类型")
    private String companyType;

    @Schema(description = "经营类型")
    private String businessTypes;

    @Schema(description = "相关资质名称及附件")
    private String related;

    @Schema(description = "店铺id")
    private Long storeId;

    @Schema(description = "证件信息")
    private String idCard;

    @Schema(description = "负责人证件类型")
    private String idCardType;

    @Schema(description = "证件图片")
    private String certificate;

    @Schema(description = "负责人姓名")
    private String personName;

    @Schema(description = "负责人手机号")
    private String personPhone;

    @Schema(description = "银行卡类型")
    private String bankType;

    @Schema(description = "开户行全称")
    private String bankName;

    @Schema(description = "开户行账号")
    private String bankCard;

    @Schema(description = "开户行预留手机号")
    private String bankPhone;

    @Schema(description = "用户名")
    private String username;

    @Schema(description = "用户密码")
    private String password;

    @Schema(description = "联系人")
    private String contactUserName;

    @Schema(description = "联系人手机号")
    private String contactPhone;


    @Schema(description = "企业套餐")
    private Long packageId;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "邀请人")
    private Long inviteUserId;

    @Schema(description = "签约日期")
    private LocalDateTime signDate;

    @Schema(description = "分成比例")
    private String splitRatio;

    @Schema(description = "签约人")
    private String signer;

    @Schema(description = "合同年限")
    private String contractYear;

    @Schema(description = "签约附件")
    private String contractAttachment;

    @Schema(description = "签约状态(0.待审核1.有效 2.无效 3.编辑 4.过期)")
    private String signStatus;

    /**
     * 分账是否承担手续费
     */
    @Schema(description = "分账是否承担手续费")
    private Integer bearFeeFlag;

    /**
     * 创建部门
     */
    private Long createDept;

    /**
     * 类型(2->商家,3->代理,4->平台,5->达人)
     */
    @Schema(description = "类型(2->商家,3->代理,4->平台,5->达人)")
    private Integer type;

    @Schema(description = "所属代理商")
    private String agencyTenantId;

    @Schema(description = "易生分配的商户编码")
    private String mchtCode;


}
