package com.iqser.red.service.persistence.management.v1.processor.utils;

public class TypeIdUtils {

    public static String toTypeId(String type, String dossierTemplateId) {

        return toTypeId(type, dossierTemplateId, null);
    }


    public static String toTypeId(String type, String dossierTemplateId, String dossierId) {

        return type + ":" + dossierTemplateId + (dossierId != null ? ":" + dossierId : "");
    }


    public static boolean isDossierTypeId(String typeId) {
        long count = typeId.chars().filter(ch -> ch == ':').count();
        return count == 2;

    }

    public static String getDossierIdFromTypeId(String typeId) {
        var index = typeId.lastIndexOf(':');
        return typeId.substring(index + 1);
    }

    public static String getDosssierTemplateTypeIdFromTypeId(String typeId) {
        var index = typeId.lastIndexOf(':');
        return typeId.substring(0, index);
    }

    public static String getDossierTemplateIdFromTypeId(String typeId) {
        var firstIndex = typeId.indexOf(':');
        var secondIndex = typeId.lastIndexOf(':');
        return secondIndex == -1 ? typeId.substring(firstIndex + 1) : typeId.substring(firstIndex + 1, secondIndex);
    }

}
