package com.dxhy.manage.config;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author jiaohongyang
 */
public interface ManageConstants {

    String LEVEL_CODE = "1";
    String INIT_MONTH = "24";
    String ZXQY = "ZXYQ_";
    String SUCCESS_CODE = "0";
    String ERROR_CODE = "1";
    String TAX_ERROR_CODE = "0";

    /**
     * 税号类型 1--集团 2--虚拟购方 3--虚拟销方 5--购方企业 8--销方企业 10-有请求进来直接返回 该税号未配置
     */
    @Getter
    @AllArgsConstructor
    enum OrgType {
        // 税号类型 1--集团 2--虚拟购方 3--虚拟销方 5--购方企业 8--销方企业 10-有请求进来直接返回 该税号未配置
        ORG_TYPE_0("0", "中心企业"), ORG_TYPE_1("1", "集团"), ORG_TYPE_2("2", "虚拟购方"), ORG_TYPE_3("3", "虚拟销方"),
        ORG_TYPE_5("5", "购方税号"), ORG_TYPE_8("8", "销方企业"), ORG_TYPE_10("10", "有请求进来直接返回 该税号未配置");

        String code;
        String desc;

    }

    /**
     * 部门类型 1--总部 2--子公司 3-- 分支机构 4--部门
     */
    @Getter
    @AllArgsConstructor
    enum DeptType {
        // 部门类型 1--总部 2--子公司 3-- 分支机构 4--部门
        DEPT_TYPE_0("0", "中心企业"), DEPT_TYPE_1("1", "总部"), DEPT_TYPE_2("2", "子公司"), DEPT_TYPE_3("3", "分支机构"),
        DEPT_TYPE_4("4", "部门");

        String code;
        String desc;

    }

    @Getter
    @AllArgsConstructor
    enum TaxCollectStatus {
        // 采集
        TAX_COLLECT_STATUS_0("0", "正常采集"), TAX_COLLECT_STATUS_4("4", "不采集");

        String code;
        String desc;
    }

    /**
     * 税号类型
     */
    @Getter
    @AllArgsConstructor
    enum IsModel {
        // 税号类型
        IS_MODEL_1("1", "证书"), IS_MODEL_2("2", "TOKEN");

        String code;
        String desc;

    }

    /**
     * KEY类型
     */
    @Getter
    @AllArgsConstructor
    enum TaxType {
        // KEY类型
        TAX_TYPE_0("0", "插盘税号"), TAX_TYPE_1("1", "盘组税号"), TAX_TYPE_2("2", "软key税号");

        String code;
        String desc;
    }

    /**
     * 是否调用 税号管理开通 0-增加 1-开启 2-停用
     */
    @Getter
    @AllArgsConstructor
    enum OptType {
        // 是否调用 税号管理开通 0-增加 1-开启 2-停用
        OPT_TYPE_0("0", "增加"), OPT_TYPE_1("1", "开启"), OPT_TYPE_2("2", "停用");

        String code;
        String desc;
    }

    /**
     * 用户类型 0-长期采集税号 1-一次性采集税号
     */
    @Getter
    @AllArgsConstructor
    enum ValidType {
        // 用户类型 0-长期采集税号 1-一次性采集税号
        VALID_TYPE_0("0", "长期采集税号"), VALID_TYPE_1("1", "次性采集税号");

        String code;
        String desc;
    }

    /**
     * 业务类型 0-金融税号 1-大客户税号
     */
    @Getter
    @AllArgsConstructor
    enum BussinessType {
        // 业务类型 0-金融税号 1-大客户税号
        BUSSINESS_TYPE_0("0", "金融税号"), BUSSINESS_TYPE_1("1", "大客户税号");

        String code;
        String desc;
    }

    /**
     * 采集发票类型 '0-全部 1-进项 2-销项'
     */
    @Getter
    @AllArgsConstructor
    enum InvSpec {
        // 采集发票类型 '0-全部 1-进项 2-销项'
        INV_SPEC_0("0", "全部"), INV_SPEC_1("1", "进项"), INV_SPEC_2("2", "销项");

        String code;
        String desc;
    }

    /**
     * 是否查验
     */
    @Getter
    @AllArgsConstructor
    enum CheckYesorNo {
        // 是否查验
        CHECK_YESORNO_Y("Y", "查验"), CHECK_YESORNO_N("N", "不查验"), CHECK_YESORNO_1("1", "查验"),
        CHECK_YESORNO_0("0", "不查验");

        String code;
        String desc;
    }

    /**
     * 是否采集
     */
    @Getter
    @AllArgsConstructor
    enum CollectYesorNo {
        // 是否采集
        COLLECT_YESORNO_Y("Y", "采集"), COLLECT_YESORNO_N("N", "不采集"), COLLECT_YESORNO_1("1", "采集"),
        COLLECT_YESORNO_0("0", "不采集");

        String code;
        String desc;
    }

    /**
     * 是否下载
     */
    @Getter
    @AllArgsConstructor
    enum CollectStatus {
        // 是否下载
        COLLECT_STATUS_0("0", "不下载"), COLLECT_STATUS_1("1", "下载");

        String code;
        String desc;
    }

    /**
     * 调用类型
     */
    @Getter
    @AllArgsConstructor
    enum FunctionNo {
        // 调用类型
        FUNCTION_NO_01("01", "发票下载"), FUNCTION_NO_02("02", "发票采集");

        String code;
        String desc;
    }

}
