package com.xunmei.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.xunmei.common.core.web.domain.BaseEntity;

import java.util.Date;

/**
 * 机构扩展对象 sys_org_extend
 *
 * @author xunmei
 * @date 2023-08-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_org_extend")
@ApiModel(value = "SysOrgExtend对象", description = "机构扩展")
public class SysOrgExtend extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 机构类型
     */
    @ApiModelProperty(value = "机构类型")
    private Long orgType;

    /**
     * 天气区域编码
     */
    @ApiModelProperty(value = "天气区域编码")
    private String weatherAreaCode;

    /**
     * 营业场所面积
     */
    @ApiModelProperty(value = "营业场所面积")
    private Double premisesArea;

    /**
     * 是否自有产权
     */
    @ApiModelProperty(value = "是否自有产权")
    private Long ownership;

    /**
     * 是否区域外
     */
    @ApiModelProperty(value = "是否区域外")
    private Long outsideArea;

    /**
     * 机构物防建设id
     */
    @ApiModelProperty(value = "机构物防建设id")
    private Long orgPhysicalDefenseConstructionId;

    /**
     * 有无保安
     */
    @ApiModelProperty(value = "有无保安")
    private Long askari;

    /**
     * 保安证
     */
    @ApiModelProperty(value = "保安证")
    private String askariCertificate;

    /**
     * 业务库类型
     */
    @ApiModelProperty(value = "业务库类型")
    private Long businessLibraryType;

    /**
     * 值守方式
     */
    @ApiModelProperty(value = "值守方式")
    private Long dutyMode;

    /**
     * 业务库出入口远程控制
     */
    @ApiModelProperty(value = "业务库出入口远程控制")
    private Long remoteControl;

    /**
     * 是否有在行自助银行
     */
    @ApiModelProperty(value = "是否有在行自助银行")
    private Long selfServiceBank;

    /**
     * 在行式大堂设备
     */
    @ApiModelProperty(value = "在行式大堂设备")
    private Long lobbyEquipment;

    /**
     * 在行式穿墙设备
     */
    @ApiModelProperty(value = "在行式穿墙设备")
    private Long wallPenetratingEquipment;

    /**
     * 银行物防建设id
     */
    @ApiModelProperty(value = "银行物防建设id")
    private Long bankPhysicalDefenseConstructionId;
    @ApiModelProperty(value = "平台品牌")
    private Long platformBrand;
    @ApiModelProperty(value = "平台供应商品牌")
    private Long platformSupplierBrand;

    /**
     * 机构id
     */
    @ApiModelProperty(value = "机构id")
    private Long orgId;
    @ApiModelProperty(value = "建设时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date constructionTime;
    @ApiModelProperty(value = "最近一次更新")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastUpdateTime;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)


                .append("id", getId())


                .append("orgType", getOrgType())


                .append("weatherAreaCode", getWeatherAreaCode())


                .append("premisesArea", getPremisesArea())


                .append("ownership", getOwnership())


                .append("outsideArea", getOutsideArea())


                .append("orgPhysicalDefenseConstructionId", getOrgPhysicalDefenseConstructionId())


                .append("askari", getAskari())


                .append("askariCertificate", getAskariCertificate())


                .append("businessLibraryType", getBusinessLibraryType())


                .append("dutyMode", getDutyMode())


                .append("remoteControl", getRemoteControl())


                .append("selfServiceBank", getSelfServiceBank())


                .append("lobbyEquipment", getLobbyEquipment())


                .append("wallPenetratingEquipment", getWallPenetratingEquipment())


                .append("bankPhysicalDefenseConstructionId", getBankPhysicalDefenseConstructionId())


                .append("createTime", getCreateTime())


                .append("updateTime", getUpdateTime())


                .append("createBy", getCreateBy())


                .append("updateBy", getUpdateBy())


                .append("orgId", getOrgId())
                .toString();
    }
}
