package com.jasamedika.medifirst2000.etl.pasien.constant;

import lombok.Getter;

import static com.jasamedika.medifirst2000.etl.pasien.constant.KategoriBerkas.*;

/**
 * @author Salman
 * @version 1.0.0
 * @since 21 Oct 2023
 */
public enum JenisBerkas {
    KTP(1, "KTP", PRIBADI),
    KK(2, "KK", PRIBADI),
    SIM(3, "SIM", PRIBADI),
    PASPOR(4, "Paspor", PRIBADI),
    KITAS(5, "KITAS", PRIBADI),
    AKTA_LAHIR(6, "Akta Lahir", PRIBADI),
    HASIL_USG(7, "Hasil USG", PENUNJANG),
    HASIL_PA(8, "Hasil PA", PENUNJANG),
    HASIL_ECHO(9, "Hasil Echo", PENUNJANG),
    REKAM_MEDIS(10, "Rekam Medis", RMIK),
    GENERAL_CONSENT(11, "General Consent", RMIK);

    private final long id;

    @Getter
    private final String name;

    @Getter
    private final KategoriBerkas kategory;

    JenisBerkas(long id, String name, KategoriBerkas category) {
        this.id = id;
        this.name = name;
        this.kategory = category;
    }

    public long id() {
        return this.id;
    }

    @Override
    public String toString() {
        return Long.toString(id);
    }

    public static JenisBerkas valueOf(long id) {
        for (JenisBerkas jenisBerkas : values()) {
            if (jenisBerkas.id == id) {
                return jenisBerkas;
            }
        }
        throw new IllegalArgumentException("No matching constant for [" + id + "]");
    }
}
