package io.delphiplatform.api.v3.constant;

import java.util.Collections;
import java.util.Map;

public abstract class DecibelTableNames {

    public static final String DECIBEL_SCHEMA = DbSchemaConstants.DECIBEL;

    public static final String CAMPAIGN_CATEGORY = "campaign_category";
    public static final String CAMPAIGN_OBJECTIVE = "campaign_objective";
    public static final String CAMPAIGN_PLATFORMS = "campaign_platforms";
    public static final String CAMPAIGN_PROVIDER = "campaign_provider";
    public static final String CAMPAIGN_SUB_CATEGORY = "campaign_sub_category";
    public static final String CAMPAIGNS = "campaigns";
    public static final String DECIBEL_LABELS = "decibel_labels";
    public static final String PROJECT_ARTISTS = "project_artists";
    public static final String PROJECT_CAMPAIGNS = "project_campaigns";
    public static final String PROJECTS = "projects";
    public static final String USER_LABELS = "user_labels";
    public static final String USER_PROJECTS = "user_projects";
    public static final String LINKFIRE_LINK_PROJECT = "linkfire_link_project";
    public static final String LINKFIRE_LINK_CAMPAIGN = "linkfire_link_campaign";

    public static Map<String, String> tableAliases = Collections.unmodifiableMap(Map.ofEntries(
        Map.entry(CAMPAIGN_CATEGORY, "cc"),
        Map.entry(CAMPAIGN_OBJECTIVE, "co"),
        Map.entry(CAMPAIGN_PLATFORMS, "cp"),
        Map.entry(CAMPAIGN_PROVIDER, "cpr"),
        Map.entry(CAMPAIGN_SUB_CATEGORY, "csc"),
        Map.entry(CAMPAIGNS, "dc"),
        Map.entry(DECIBEL_LABELS, "dl"),
        Map.entry(PROJECT_ARTISTS, "pa"),
        Map.entry(PROJECT_CAMPAIGNS, "pc"),
        Map.entry(PROJECTS, "pr"),
        Map.entry(USER_LABELS, "ul"),
        Map.entry(USER_PROJECTS, "up"),
        Map.entry(LINKFIRE_LINK_PROJECT, "llp"),
        Map.entry(LINKFIRE_LINK_CAMPAIGN, "llc")
    ));
}
