package cn.com.ty.lift.common.constants;

public class CommonEnum {

    /**
     * 电梯类型
     */
    public enum LiftType implements IEnum {

        STRAIGHT_LADDER("直梯", "1"),
        STAIRCASE("扶梯", "2");
        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        LiftType(String label, String code) {
            this.label = label;
            this.code = code;
        }

        /**
         * 取得枚举区分
         *
         * @return String
         */
        @Override
        public String getEnumName() {
            return "LiftType";
        }

        /**
         * get
         *
         * @return String
         */
        @Override
        public String getLabel() {
            return label;
        }

        /**
         * set
         *
         * @return String
         */
        @Override
        public String getCode() {
            return code;
        }

        /**
         * String转换，中间加横杠
         *
         * @return String
         */
        @Override
        public String toString() {
            return this.label;
        }
    }

    /**
     * 电梯状态
     */
    public enum LiftStatus implements IEnum {

        STOP_INSURANCE("停保", "1"),
        NORMAL("正常", "2"),
        MAINTENANCE("保养中", "3"),
        EMERGENCY_REPAIR("维修中", "4"),
        ANNUAL_INSPECTION("年检中", "5"),
        CAPITAL_REPAIR("大修中", "6");
        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        LiftStatus(String label, String code) {
            this.label = label;
            this.code = code;
        }

        /**
         * 取得枚举区分
         *
         * @return String
         */
        @Override
        public String getEnumName() {
            return "LiftStatus";
        }

        /**
         * get
         *
         * @return String
         */
        @Override
        public String getLabel() {
            return label;
        }

        /**
         * set
         *
         * @return String
         */
        @Override
        public String getCode() {
            return code;
        }

        /**
         * String转换，中间加横杠
         *
         * @return String
         */
        @Override
        public String toString() {
            return this.label;
        }
    }

    /**
     * 项目状态
     */
    public enum ProjectStatus implements IEnum {
        NOT_START("尚未开始", "1"),
        IN_SERVICE("服务中", "2"),
        STOP_SERVICE("停止服务", "3"),
        OVERDUE("逾期", "4");
        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        ProjectStatus(String label, String code) {
            this.label = label;
            this.code = code;
        }

        /**
         * 取得枚举区分
         *
         * @return String
         */
        @Override
        public String getEnumName() {
            return "ProjectStatus";
        }

        /**
         * get
         *
         * @return String
         */
        @Override
        public String getLabel() {
            return label;
        }

        /**
         * set
         *
         * @return String
         */
        @Override
        public String getCode() {
            return code;
        }

        /**
         * String转换，中间加横杠
         *
         * @return String
         */
        @Override
        public String toString() {
            return this.label;
        }
    }

    /**
     * 默认角色
     */
    public enum DefaultRole implements IEnum {

        MTWORK("维保工", "ROLEMTWORK"),
        CLERK("文员", "CLERK"),
        FINANCE("财务", "FINANCE"),
        REGION_DIRECTOR("区域主管", "REGION_DIRECTOR"),
        HIGH_DIRECTOR("总经理", "HIGH_DIRECTOR"),
        ENTERPRISE_ADMIN("企业管理员", "ENTERPRISE_ADMIN");

        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        DefaultRole(String label, String code) {
            this.label = label;
            this.code = code;
        }

        @Override
        public String getEnumName() {
            return "DefaultRole";
        }

        @Override
        public String getCode() {
            return code;
        }

        @Override
        public String getLabel() {
            return label;
        }
    }

    /**
     * 保养类型
     */
    public enum MaintenanceType implements IEnum {

        HALF_MONTH("半月", "1"),
        QUARTER("季度", "2"),
        HALF_YEAR("半年", "3"),
        YEAR("全年", "4");

        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        MaintenanceType(String label, String code) {
            this.label = label;
            this.code = code;
        }

        @Override
        public String getEnumName() {
            return "DefaultRole";
        }

        @Override
        public String getCode() {
            return code;
        }

        @Override
        public String getLabel() {
            return label;
        }
    }

    /**
     * 维保计划状态
     */
    public enum MaintenancePlanStatus implements IEnum {

        WAITING_MAINTENANCE("待完成","0"),
        MAINTENANCE_DOING("保养中", "2"),
        COMPLETE("已完成", "1"),
        OVERDUE("超期", "-1");


        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        MaintenancePlanStatus(String label, String code) {
            this.label = label;
            this.code = code;
        }

        @Override
        public String getEnumName() {
            return "MaintenancePlanStatus";
        }

        @Override
        public String getCode() {
            return code;
        }

        @Override
        public String getLabel() {
            return label;
        }
    }

    /**
     * 保养记录状态
     */
    public enum MaintenanceRecordStatus implements IEnum {

        COMPLETE("已完成", "2"),
        MAINTENANCE_DOING("保养中", "1");

        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        MaintenanceRecordStatus(String label, String code) {
            this.label = label;
            this.code = code;
        }

        @Override
        public String getEnumName() {
            return "MaintenanceRecordStatus";
        }

        @Override
        public String getCode() {
            return code;
        }

        @Override
        public String getLabel() {
            return label;
        }
    }

    /**
     * 大修项目状态
     */
    public enum CapitalRepairStatus implements IEnum {

        NO_START("未开始", "1"),
        ABUILDING("施工中", "2"),
        CHECK_PENDING("待审核", "3"),
        COMPLETE("已完成", "4"),
        STOP_SERVICE("停止服务", "5");

        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        CapitalRepairStatus(String label, String code) {
            this.label = label;
            this.code = code;
        }

        @Override
        public String getEnumName() {
            return "CapitalRepairStatus";
        }

        @Override
        public String getCode() {
            return code;
        }

        @Override
        public String getLabel() {
            return label;
        }
    }

    /**
     * 合同类型
     */
    public enum ContractStatus implements IEnum {

        HALF_INCLUSIVE("半包", "1"),
        BIG_INCLUSIVE("大包", "2"),
        CLEAR_INCLUSIVE("清包", "3"),
        ALL_INCLUSIVE("全包", "4"),
        CAPITAL_REPAIR("大修", "4");

        /**
         * 值
         */
        private String label;

        /**
         * 键
         */
        private String code;

        /**
         * 构造函数
         *
         * @param label String
         * @param code  String
         */
        ContractStatus(String label, String code) {
            this.label = label;
            this.code = code;
        }

        @Override
        public String getEnumName() {
            return "ContractStatus";
        }

        @Override
        public String getCode() {
            return code;
        }

        @Override
        public String getLabel() {
            return label;
        }
    }
}
