package com.ylx.massage.enums;

import com.alibaba.druid.sql.dialect.odps.ast.OdpsAddFileStatement;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 商户申请附件 - 文件类型枚举
 */
@Getter
@AllArgsConstructor
public enum FileTypeEnum {

    /**
     * 1-形象照
     */
    PORTRAIT("1", "形象照"),

    /**
     * 2-生活照
     */
    LIFE_PHOTO("2", "生活照"),

    /**
     * 3-宣传视频
     */
    PROMOTION_VIDEO("3", "宣传视频"),

    /**
     * 4-身份证正面
     */
    ID_CARD_FRONT("4", "身份证正面"),

    /**
     * 5-身份证反面
     */
    ID_CARD_BACK("5", "身份证反面"),

    /**
     * 6-手持身份证
     */
    ID_CARD_HANDHELD("6", "手持身份证"),

    /**
     * 7-健康证
     */
    HEALTH_CERT("7", "健康证"),

    /**
     * 8-从业资格证
     */
    QUALIFICATION_CERT("8", "从业资格证"),

    /**
     * 9-无犯罪证明
     */
    NO_CRIME_RECORD("9", "无犯罪证明"),

    /**
     * 10-承诺书
     */
    COMMITMENT_LETTER("10", "承诺书"),

    /**
     * 11-承诺录音
     */
    COMMITMENT_AUDIO("11", "承诺录音"),

    /**
     * 12-承诺录像
     */
    COMMITMENT_VIDEO("12", "承诺录像"),

    /**
     * 13-其他
     */
    OTHER("13", "其他");

    /**
     * 类型代码 (String)
     */
    private  String code;

    /**
     * 描述信息
     */
    private  String desc;

    /**
     * 根据 code 获取对应的枚举对象
     *
     * @param code 类型代码
     * @return FileTypeEnum 对应的枚举对象，如果未找到则返回 null
     */
    public static FileTypeEnum getByCode(String code) {
        if (code == null) {
            return null;
        }
        for (FileTypeEnum type : FileTypeEnum.values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return null;
    }

    /**
     * 根据 code 获取对应的描述信息
     *
     * @param code 类型代码
     * @return String 描述信息，如果未找到则返回空字符串或原值
     */
    public static String getDescByCode(String code) {
       FileTypeEnum type = getByCode(code);
        return type != null ? type.getDesc() : "";
    }
}
