/*
 * Copyright 2023-2025 VMware, Inc. All rights reserved. VMware Confidential
 */

export const VDC_ID_ROUTE_PARAM = "vdcId";
export const NOT_AUTHORIZED_PATH = "not-authorized";

export const VAPPS = "vapps";

const VDCS = "vdcs";
const DASHBOARD = "dashboard";
const VAPP_LEGACY = "vapp-legacy";
const VAPP_ENTITY_CONTAINER_LEGACY = `${VAPP_LEGACY}/:vappId`;
const VAPP_DIAGRAM_LEGACY = "diagram";
const VAPP_DETAILS_LEGACY = "details";
const VAPP_NETWORKS_LEGACY = "networks";
const VAPP_METADATA_LEGACY = "metadata";
const VAPP = "vapp";
const VAPP_DETAILS = `${VAPP}/:vappId`;
const VM_LEGACY = "vm-legacy";
const VM_DETAILS_LEGACY = `${VM_LEGACY}/:vmId`;
const VM_IN_VAPP_DETAILS_LEGACY = `${VAPP_LEGACY}/:vappId/${VAPP_DETAILS_LEGACY}/:vmId`;
const VM = "vm";
const VM_DETAILS = `${VM}/:vmId`;
const AFFINITY_RULES = "affinityRules";
const DISKS = "disks";
const STORAGE_POLICIES = "storage-policies";
const STORAGE_POLICIES_DETAILS = `${STORAGE_POLICIES}/:storagePolicyId`;
const CONTENT_HUB = "content-hub";

export const VDC = {
    VDCS: VDCS,
    DASHBOARD: DASHBOARD,

    // vApp Legacy routes
    VAPP_LEGACY: VAPP_LEGACY,
    VAPP_ENTITY_CONTAINER_LEGACY: VAPP_ENTITY_CONTAINER_LEGACY,

    // new vApp routes
    VAPP: VAPP,
    VAPP_DETAILS: VAPP_DETAILS,

    // vApp common routes
    VAPP_DIAGRAM_LEGACY: VAPP_DIAGRAM_LEGACY,
    VAPP_DETAILS_LEGACY: VAPP_DETAILS_LEGACY,
    VAPP_NETWORKS_LEGACY: VAPP_NETWORKS_LEGACY,
    VAPP_METADATA_LEGACY: VAPP_METADATA_LEGACY,

    // VM Legacy routes
    VM_LEGACY: VM_LEGACY,
    VM_DETAILS_LEGACY: VM_DETAILS_LEGACY,
    VM_IN_VAPP_DETAILS_LEGACY: VM_IN_VAPP_DETAILS_LEGACY,

    // new VM routes
    VM: VM,
    VM_DETAILS: VM_DETAILS,

    AFFINITY_RULES: AFFINITY_RULES,
    DISKS: DISKS,

    CONTENT_HUB: CONTENT_HUB,
};

export const NETWORK = {
    ORG_VDC_NETWORK: "org-vdc-networks",
    EDGE_GATEWAY: "org-vdc-edge-gateways",
    SECURITY: "security",
    FIREWALL_GROUPS: "firewall-groups",
};
export const SETTINGS = {
    GENERAL: "general-settings",
    METADATA: "metadata",
    SHARING: "sharing",
    STORAGE_POLICY: STORAGE_POLICIES,
    STORAGE_POLICY_DETAILS: STORAGE_POLICIES_DETAILS,
    KUBERNETES: "kubernetes",
};

export const DfwPaths = {
    DFW: "dfw",
};

export const VAPPNETWORK = {
    ID_PARAM: "vappNetworkId",
    GENERAL: "general",
    IPAM: "ipam",
    STATIC_POOLS: "staticpools",
    DNS: "dns",
    DHCP: "dhcp",
    SERVICES: "services",
    IP_ALLOCATIONS: "ipAllocations",
    STATIC_ROUTING: "staticRouting",
};

export const ORG_VDC_NETWORK = {
    ID_PARAM: "orgVdcNetworkId",
    GENERAL: "general",
    SEGMENT_PROFILES: "segmentProfiles",
    IPAM: "ipam",
    IP_ALLOCATIONS: "ipAllocations",
    IPV4_ALLOCATIONS: "ipv4Allocations",
    IPV6_ALLOCATIONS: "ipv6Allocations",
    STATIC_POOLS: "staticpools",
    DNS: "dns",
    DHCP_NSXV: "dhcp",
    DHCP_NSXT: "dhcp-nsxt",
    SECURITY_GROUPS: "securityGroups",
};

export const CONFIGURE_SERVICES_NETWORK_EDGES_DATA_TYPE = "network-edges";

export const FIREWALL_GROUP = {
    ID_PARAM: "firewallGroupId",
    GENERAL: "general",
    MEMBERS: "members",
    IP_ADDRESSES: "ip-addresses",
};

export const DOMAIN_NETWORKING = "domain-networking";
