package com.ruoyi.busi.domain.vo;

import java.math.BigDecimal;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

/**
 * 司法行政机构新增/编辑入参
 *
 * @author ruoyi
 */
public class SysOrgOperateVO
{
    /** 机构编码（主键，新增必填） */
    @NotBlank(message = "机构编码不能为空", groups = { Add.class, Edit.class })
    @Size(max = 18, message = "机构编码长度不能超过18个字符")
    private String jgbm;

    /** 机构名称 */
    @NotBlank(message = "机构名称不能为空", groups = { Add.class, Edit.class })
    @Size(max = 300, message = "机构名称长度不能超过300个字符")
    private String jgmc;

    /** 机构简称 */
    @Size(max = 60, message = "机构简称长度不能超过60个字符")
    private String jgjc;

    /** 英文名称 */
    @Size(max = 60, message = "英文名称长度不能超过60个字符")
    private String ywmc;

    /** 机构代码（业务唯一） */
    @NotBlank(message = "机构代码不能为空", groups = { Add.class, Edit.class })
    @Size(max = 20, message = "机构代码长度不能超过20个字符")
    private String jgdm;

    /** 负责人 */
    @NotBlank(message = "负责人不能为空", groups = { Add.class, Edit.class })
    @Size(max = 20, message = "负责人长度不能超过20个字符")
    private String fzr;

    /** 机构类别 */
    @NotBlank(message = "机构类别不能为空", groups = { Add.class, Edit.class })
    @Size(max = 4, message = "机构类别长度不能超过4个字符")
    private String jglb;

    /** 机构行政级别 */
    @NotBlank(message = "机构行政级别不能为空", groups = { Add.class, Edit.class })
    @Size(max = 2, message = "机构行政级别长度不能超过2个字符")
    private String jgxzjb;

    /** 机构隶属层级 */
    @NotBlank(message = "机构隶属层级不能为空", groups = { Add.class, Edit.class })
    @Size(max = 2, message = "机构隶属层级长度不能超过2个字符")
    private String jglscj;

    /** 上级司法行政机关编码 */
    @NotBlank(message = "上级机构编码不能为空", groups = { Add.class, Edit.class })
    @Size(max = 18, message = "上级机构编码长度不能超过18个字符")
    private String sjsfxzzgjg;

    /** 联系电话 */
    @Size(max = 40, message = "联系电话长度不能超过40个字符")
    @Pattern(regexp = "^$|^1[3-9]\\d{9}$|^0\\d{2,3}-?\\d{7,8}$", message = "联系电话格式不正确")
    private String lxdh;

    /** 传真号码 */
    @Size(max = 40, message = "传真号码长度不能超过40个字符")
    private String czhm;

    /** 电子邮箱 */
    @Size(max = 60, message = "电子邮箱长度不能超过60个字符")
    @Email(message = "电子邮箱格式不正确")
    private String dzyx;

    /** 行政区划代码 */
    @NotBlank(message = "行政区划代码不能为空", groups = { Add.class, Edit.class })
    @Size(min = 6, max = 6, message = "行政区划代码必须为6位")
    private String xzqhdm;

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

    /** 经度 */
    private BigDecimal jd;

    /** 纬度 */
    private BigDecimal wd;

    /** 状态（0停用 1正常） */
    @NotNull(message = "状态不能为空", groups = { Add.class, Edit.class })
    private Integer status;

    /** 备注 */
    @Size(max = 500, message = "备注长度不能超过500个字符")
    private String remark;

    /** 新增校验分组 */
    public interface Add
    {
    }

    /** 编辑校验分组 */
    public interface Edit
    {
    }

    public String getJgbm()
    {
        return jgbm;
    }

    public void setJgbm(String jgbm)
    {
        this.jgbm = jgbm;
    }

    public String getJgmc()
    {
        return jgmc;
    }

    public void setJgmc(String jgmc)
    {
        this.jgmc = jgmc;
    }

    public String getJgjc()
    {
        return jgjc;
    }

    public void setJgjc(String jgjc)
    {
        this.jgjc = jgjc;
    }

    public String getYwmc()
    {
        return ywmc;
    }

    public void setYwmc(String ywmc)
    {
        this.ywmc = ywmc;
    }

    public String getJgdm()
    {
        return jgdm;
    }

    public void setJgdm(String jgdm)
    {
        this.jgdm = jgdm;
    }

    public String getFzr()
    {
        return fzr;
    }

    public void setFzr(String fzr)
    {
        this.fzr = fzr;
    }

    public String getJglb()
    {
        return jglb;
    }

    public void setJglb(String jglb)
    {
        this.jglb = jglb;
    }

    public String getJgxzjb()
    {
        return jgxzjb;
    }

    public void setJgxzjb(String jgxzjb)
    {
        this.jgxzjb = jgxzjb;
    }

    public String getJglscj()
    {
        return jglscj;
    }

    public void setJglscj(String jglscj)
    {
        this.jglscj = jglscj;
    }

    public String getSjsfxzzgjg()
    {
        return sjsfxzzgjg;
    }

    public void setSjsfxzzgjg(String sjsfxzzgjg)
    {
        this.sjsfxzzgjg = sjsfxzzgjg;
    }

    public String getLxdh()
    {
        return lxdh;
    }

    public void setLxdh(String lxdh)
    {
        this.lxdh = lxdh;
    }

    public String getCzhm()
    {
        return czhm;
    }

    public void setCzhm(String czhm)
    {
        this.czhm = czhm;
    }

    public String getDzyx()
    {
        return dzyx;
    }

    public void setDzyx(String dzyx)
    {
        this.dzyx = dzyx;
    }

    public String getXzqhdm()
    {
        return xzqhdm;
    }

    public void setXzqhdm(String xzqhdm)
    {
        this.xzqhdm = xzqhdm;
    }

    public String getDz()
    {
        return dz;
    }

    public void setDz(String dz)
    {
        this.dz = dz;
    }

    public BigDecimal getJd()
    {
        return jd;
    }

    public void setJd(BigDecimal jd)
    {
        this.jd = jd;
    }

    public BigDecimal getWd()
    {
        return wd;
    }

    public void setWd(BigDecimal wd)
    {
        this.wd = wd;
    }

    public Integer getStatus()
    {
        return status;
    }

    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public String getRemark()
    {
        return remark;
    }

    public void setRemark(String remark)
    {
        this.remark = remark;
    }
}
