package com.inkasso.factoring.file.enums;

import com.inkasso.adapter.enums.FileBusinessInterface;
import lombok.Getter;

@Getter
public enum FileTypeEnum implements FileBusinessInterface {

    USER_HEAD_IMG("userHeadImg", "用户头像"),
    ENTERPRISE_LOCATION_MAP("enterprise_location_map", "地点定位图"),
    ENTERPRISE_RENTAL_CONTRACT("enterprise_rental_contract", "租房合同"),
    WATER_ELECTRIICITY_FEES("enterprise_water_electricity_fees", "水电费缴纳流水"),
    ENTERPRISE_OFFICE_ENVIRONMENT("enterprise_office_environment", "办公环境"),
    ENTERPRISE_BUSINESS_LICENSE("enterprise_business_license", "营业执照"),
    ENTERPRISE_BASIC_ACCOUNT_INFORMATION("enterprise_basic_account_information", "基本户信息"),
    ENTERPRISE_ARTICLES_ASSOCIATION("enterprise_articles_association", "公司章程和修正案"),
    ENTERPRISE_JUDGMENT("enterprise_judgment", "结案证明或判决书"),
    ENTERPRISE_TAX_RETURN("enterprise_tax_return", "纳税申报表"),
    ENTERPRISE_FINANCIAL_STATEMENTS("enterprise_financial_statements", "近两年财务报表"),
    ENTERPRISE_ACCOUNTING_REPORT("enterprise_accounting_report", "企业内账报表"),
    ENTERPRISE_IDCARD_Files("enterprise_idcard_Files", "身份证照片"),
    ENTERPRISE_UPSTREAM_DOCUMENTS("enterprise_upstream_documents", "上游采购单据"),
    ENTERPRISE_SALES_DOCUMENTS("enterprise_sales_documents", "下游销售单据"),
    ENTERPRISE_LOCATION_MAP_HISTORY("enterprise_location_map_history", "地点定位图历史"),
    ENTERPRISE_RENTAL_CONTRACT_HISTORY("enterprise_rental_contract_history", "租房合同历史"),
    WATER_ELECTRIICITY_FEES_HISTORY("enterprise_water_electricity_fees_history", "水电费缴纳流水历史"),
    ENTERPRISE_OFFICE_ENVIRONMENT_HISTORY("enterprise_office_environment_history", "办公环境历史"),
    ENTERPRISE_BUSINESS_LICENSE_HISTORY("enterprise_business_license_history", "营业执照历史"),
    ENTERPRISE_BASIC_ACCOUNT_INFORMATION_HISTORY("enterprise_basic_account_information_history", "基本户信息历史"),
    ENTERPRISE_ARTICLES_ASSOCIATION_HISTORY("enterprise_articles_association_history", "公司章程和修正案历史"),
    ENTERPRISE_JUDGMENT_HISTORY("enterprise_judgment_history", "结案证明或判决书历史"),
    ENTERPRISE_TAX_RETURN_HISTORY("enterprise_tax_return_history", "纳税申报表历史"),
    ENTERPRISE_FINANCIAL_STATEMENTS_HISTORY("enterprise_financial_statements_history", "近两年财务报表历史"),
    ENTERPRISE_ACCOUNTING_REPORT_HISTORY("enterprise_accounting_report_history", "企业内账报表历史"),
    ENTERPRISE_IDCARD_FILES_HISTORY("enterprise_idcard_Files_history", "身份证照片"),
    ENTERPRISE_UPSTREAM_DOCUMENTS_HISTORY("enterprise_upstream_documents_history", "上游采购单据历史"),
    ENTERPRISE_SALES_DOCUMENTS_HISTORY("enterprise_sales_documents_history", "下游销售单据历史"),
    USER_SUGGESTION("userSuggestion","用户建议"),
    ENTERPRISE_CREDIT_AUTHORIZATION_LETTER("enterpriseCreditAuthorizationLetter","企业征信授权书"),
    ENTERPRISE_CREDIT_AUTHORIZATION_LETTER_REPORT("enterpriseCreditAuthorizationLetterReport","企业征信授权书出证文件"),
    ENTERPRISE_CREDIT_AUTHORIZATION_LETTER_HISTORY("enterpriseCreditAuthorizationLetterHistory","企业征信授权书历史"),
    ENTERPRISE_CREDIT_AUTHORIZATION_LETTER_REPORT_HISTORY("enterpriseCreditAuthorizationLetterReportHistory","企业征信授权书出证文件历史"),

    PROJECT_BIDDING_FILE("projectBiddingFile","项目招投标文件、合同模板等"),
    PROJECT_BIDDING_FILE_HISTORY("projectBiddingFileHistory","项目招投标文件、合同模板等历史"),
    PROJECT_DEPARTMENT_FILE("projectDepartmentFile","项目开工情况图片、项目部铭牌图片"),
    PROJECT_DEPARTMENT_FILE_HISTORY("projectDepartmentFileHistory","项目开工情况图片、项目部铭牌图片历史"),
    PROJECT_CORE_ENTERPRISE_FILE("projectCoreEnterpriseFile","项目核心企业历史合作资料"),
    PROJECT_CORE_ENTERPRISE_FILE_HISTORY("projectCoreEnterpriseFileHistory","项目核心企业历史合作资料历史"),
    TENDERS_FILE("tendersFile","招投标管理-招标文件"),
    BIDDING_FILE("biddingFile","招投标管理-投标文件"),
    SALES_CONTRACT_MANAGEMENT_FILE("salesContractManagementFile","销售合同创建-合同模板"),
    SALES_CONTRACT_FILE("salesContractFile", "销售合同管理-销售合同文件"),
    SALES_SUPPLEMENT_CONTRACT_TEMPLATE_FILE("salesSupplementContractTemplateFile","销售合同变更创建-合同模板"),
    SALES_SUPPLEMENT_CONTRACT_FILE("salesContractSupplementContractFile","销售合同变更录入-合同文件"),
    PURCHASE_CONTRACT_FILE("purchaseContractFile", "采购合同管理-采购合同文件"),
    PURCHASE_CONTRACT_SIGN_FILE_REPORT("purchaseContractFileReport", "采购合同管理-采购签署合同出证文件"),
    PURCHASE_CONTRACT_SIGN_FILE("purchaseContractSignFile", "采购合同管理-采购签署合同文件"),
    PURCHASE_CONTRACT_SUPPLEMENT_SIGN_FILE("purchaseContractSupplementSignFile", "采购合同管理-采购签署补充合同文件"),
    PURCHASE_CONTRACT_SUPPLEMENT_FILE_REPORT("purchaseContractSupplementFileReport", "采购合同管理-采购签署补充合同出证文件"),
    PURCHASE_CONTRACT_SUPPLEMENT_FILE("purchaseContractSupplementFile", "采购合同管理-采购补充合同文件"),
    PURCHASE_CONTRACT_SIGN_UNDERLINE("purchaseContractUnderlineSignFile", "采购合同管理-采购线下签署合同文件"),
    PURCHASE_CONTRACT_FILE_view("purchaseContractFileView", "采购合同管理-采购合同未签署的文件"),
    PURCHASE_CONTRACT_UPLOAD_CONTRACT_FILE("purchaseContractUploadContractFile", "采购合同管理-采购合同上传的文件"),
    PURCHASE_SUPPLEMENT_CONTRACT_SIGN_UNDERLINE("purchaseSupplementContractUnderlineSignFile", "采购合同管理-采购补充合同线下签署合同文件"),

    ACCEPTANCE_ADJUST_FILE("acceptanceAdjustFile","验收货物调价说明"),
    ACCEPTANCE_GOODS_FILE("acceptanceGoodsFile","验收单生成的货物模板"),
    ACCEPTANCE_FILE("acceptanceFile", "验收单管理-验收单文件"),
    //ACCEPTANCE_FILE_HISTORY("acceptanceFileHistory", "验收单管理-验收单文件(历史)"),
    ACCEPTANCE_SUPPLEMENT_FILE("acceptanceSupplementFile", "验收单管理-补充说明文件"),
    //ACCEPTANCE_SUPPLEMENT_FILE_HISTORY("acceptanceSupplementFileHistory", "验收单管理-补充说明文件（历史）"),
    ACCEPTANCE_UPSTREAM_FILE("acceptanceUpstreamFile", "验收单管理-生成的上游验收单文件"),

    ACCEPTANCE_PRICE_SUPPLEMENT_FILE_HIS("acceptanceAdjustHisFile", "验收单管理(单价调整)-补充说明文件历史"),

   // ACCEPTANCE_UPSTREAM_FILE_HISTORY("acceptanceUpstreamFileHistory", "验收单管理-生成的上游验收单文件(历史)"),
    ACCEPTANCE_UPSTREAM_FILE_SIGN("acceptanceUpstreamFileSign", "验收单管理-生成的上游验收单文件已签署"),
    /**
     * 销售合同管理-销售合同审批，签署确认文件
     **/
    ACCEPTANCE_APPROVAL_FILE("acceptanceApprovalFile", "验收单审核，签署确认文件"),

    /**
     * 结算单管理-下游结算单文件
     **/
    SETTLEMENT_FILE("settlementFile", "结算单管理-下游结算单文件"),

    /**
     * 结算单管理-网价文件
     **/
    SETTLEMENT_NET_PRICE_FILE("settlementNetPriceFile", "结算单管理-网价文件"),
    /**
     * 结算单管理-补充说明文件
     **/
    SETTLEMENT_SUPPLEMENT_FILE("settlementSupplementFile", "结算单管理-补充说明文件"),

    /**
     * 结算单管理-生成的上游未签署文件
     **/
    SETTLEMENT_UPSTREAM_UNSIGNED_FILE("settlementUpstreamUnsignedFile", "结算单管理-生成的上游未签署文件"),

    /**
     * 结算单管理-生成的上游已签署文件
     **/
    SETTLEMENT_UPSTREAM_SIGNED_FILE("settlementUpstreamSignedFile", "结算单管理-生成的上游已签署文件"),
    /**
     * 结算单管理-出证文件
     **/
    SETTLEMENT_CONTRACT_REPORT("settlementContractReport", "结算单管理-出证文件"),

    /**
     * 结算单管理-有效文件打包下载
     **/
    SETTLEMENT_ZIP_FILE("settlementZipFile", "结算单管理所有文件"),
    /**
     * 发票管理-采购发票文件
     **/
    INVOICE_PURCHASE_FILE("invoicePurchaseFile", "发票管理-采购发票文件"),


    INVOICE_DETAIL_FILE("invoiceDetailFile", "发票管理-开票明细表（含税收分类编码）"),
    /**
     * 发票管理-开票明细表（含税收分类编码）(历史)
     */
    INVOICE_DETAIL_HIS_FILE("invoiceDetailHisFile", "发票管理-开票明细表（含税收分类编码）历史文件"),


    /**
     * 发票管理-销售发票文件
     **/
    INVOICE_SALES_FILE("invoiceSalesFile", "发票管理-销售发票文件"),

    /**
     * 发票管理-采购发票历史文件
     **/
    INVOICE_PURCHASE_HIS_FILE("invoicePurchaseHisFile", "发票管理-采购发票历史文件"),

    /**
     * 发票管理-销售发票历史文件
     **/
    INVOICE_SALES_HIS_FILE("invoiceSalesHisFile", "发票管理-销售发票历史文件"),

    /**
     * 发票管理-有效文件打包下载
     **/
    INVOICE_ZIP_FILE("invoiceZipFile", "发票管理所有文件"),

    /**
     *  发票管理-销售发票打包下载
     */
    INVOICE_SALE_ZIP_FILE("invoiceSaleZipFile","销售发票打包下载"),

  /**
     * 融资管理-网价附件
     */
    FINANCING_NET_PRICE_FILE("financing_net_price_file","融资管理网价附件"),

    /**
     * 融资管理-网价历史附件
     */
    FINANCING_NET_PRICE_HIS_FILE("financing_net_price_his_file","融资管理网价历史附件"),

    /**
     * 合同管理-签署文件
     **/
    CONTRACT_SIGNED_FILE("contractSignedFile", "合同管理-签署文件"),
    /**
     * 合同管理-出证文件
     **/
    CONTRACT_REPORT_FIlE("contractReportFile", "合同管理-出证文件"),
    /**
     * 企业信息电子签-出证文件
     **/
    CONTRACT_CERTIFICATE_REPORT_FILE("sysCustomerReport", "合同管理-授权书出证文件");

    String code;

    String desc;

    FileTypeEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public static FileTypeEnum getByCode(String code) {
        for (FileTypeEnum ft : values()) {
            if (ft.code.equals(code)) {
                return ft;
            }
        }
        return null;
    }
}
