from enum import StrEnum


class ConfigKey(StrEnum):
  RBAC = "RBAC"  # Role-Based Access Control (RBAC)
  CQRS = "CQRS"  # Command and Query Responsibility Segregation (CQRS)

  # --------------------------------------------------------
  # Note: Base on Collection type at "core/collection.ts"
  # --------------------------------------------------------

  # Auth
  AuthApts = "auth/apts"
  AuthGrants = "auth/grants"

  # Domain
  DomainApps = "domain/apps"
  DomainClients = "domain/clients"

  # Context
  ContextConfigs = "context/configs"
  ContextSettings = "context/settings"

  # Identity
  IdentityUsers = "identity/users"
  IdentitySessions = "identity/sessions"
  IdentityProfiles = "identity/profiles"

  # Essential
  EssentialSagas = "essential/sagas"
  EssentialSagaStages = "essential/saga-stages"

  # Financial
  FinancialWallets = "financial/wallets"
  FinancialAccounts = "financial/accounts"
  FinancialInvoices = "financial/invoices"
  FinancialCurrencies = "financial/currencies"
  FinancialTransactions = "financial/transactions"

  # General
  GeneralEvents = "general/events"
  GeneralComments = "general/comments"
  GeneralArtifacts = "general/artifacts"
  GeneralWorkflows = "general/workflows"
  GeneralActivities = "general/activities"

  # Special
  SpecialStats = "special/stats"
  SpecialFiles = "special/files"

  # Touch
  TouchEmails = "touch/emails"
  TouchSmss = "touch/smss"
  TouchPushes = "touch/pushes"
  TouchNotices = "touch/notices"
  TouchPushHistories = "touch/push-histories"

  # Content
  ContentNotes = "content/notes"
  ContentPosts = "content/posts"
  ContentTickets = "content/tickets"

  # Logistic
  LogisticCargoes = "logistic/cargoes"
  LogisticDrivers = "logistic/drivers"
  LogisticTravels = "logistic/travels"
  LogisticVehicles = "logistic/vehicles"
  LogisticLocations = "logistic/locations"

  # Conjoint
  ConjointMembers = "conjoint/members"
  ConjointAccounts = "conjoint/accounts"
  ConjointChannels = "conjoint/channels"
  ConjointContacts = "conjoint/contacts"
  ConjointMessages = "conjoint/messages"

  # Career
  CareerStocks = "career/stocks"
  CareerStores = "career/stores"
  CareerProducts = "career/products"
  CareerBranches = "career/branches"
  CareerServices = "career/services"
  CareerCustomers = "career/customers"
  CareerEmployees = "career/employees"
  CareerBusinesses = "career/businesses"

  # Thing
  ThingDevices = "thing/devices"
  ThingSensors = "thing/sensors"
  ThingMetrics = "thing/metrics"
