package com.aegis.resource.warehouse.domain;

import com.aegis.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("resource_warehouse")
public class Warehouse extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 仓库ID */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 仓库编码 */
    @NotBlank(message = "仓库编码不能为空")
    @Size(max = 50, message = "仓库编码长度不能超过50个字符")
    private String warehouseCode;

    /** 仓库名称 */
    @NotBlank(message = "仓库名称不能为空")
    @Size(max = 100, message = "仓库名称长度不能超过100个字符")
    private String warehouseName;

    /** 仓库类型 */
    @Size(max = 32, message = "仓库类型长度不能超过32个字符")
    private String warehouseType;

    /** 所属单位名称 */
    @Size(max = 128, message = "所属单位名称长度不能超过128个字符")
    private String belongOrgName;

    /** 所属单位类型 */
    @Size(max = 32, message = "所属单位类型长度不能超过32个字符")
    private String belongOrgType;

    /** 详细地址 */
    @Size(max = 500, message = "详细地址长度不能超过500个字符")
    private String address;

    /** 经度 */
    private BigDecimal longitude;

    /** 纬度 */
    private BigDecimal latitude;

    /** 负责人 */
    @Size(max = 64, message = "负责人长度不能超过64个字符")
    private String manager;

    /** 联系电话 */
    @Size(max = 20, message = "联系电话长度不能超过20个字符")
    private String contactPhone;

    /** 容量（平方米或立方米） */
    private BigDecimal capacity;

    /** 状态（0正常 1停用） */
    @Size(max = 1, message = "状态长度不能超过1个字符")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    @TableLogic
    private String delFlag;
}