import 'package:json_annotation/json_annotation.dart';


/// Represents various resource types (mirroring your Go "Type" constants).
enum ResourceType {
  /// Represents user accounts in the system
  @JsonValue('accounts')
  accounts,

  /// Tracks callbacks configurations
  @JsonValue('callbacks')
  callbacks,

  /// Tracks changes made to resources
  @JsonValue('changes')
  changes,

  /// Represents client information
  @JsonValue('clients')
  clients,

  /// Represents invitations sent to users
  @JsonValue('invitations')
  invitations,

  /// Represents logos for organizations or projects
  @JsonValue('logo')
  logo,

  /// Represents notifications sent to users
  @JsonValue('notifications')
  notifications,

  /// Represents organizations in the system
  @JsonValue('organizations')
  organizations,

  @JsonValue('chain_wallets')
  chainWallets,

  @JsonValue('chain_wallet_balances')
  chainWalletBalances,

  @JsonValue('chain_transfers')
  chainTransfers,

  @JsonValue('chain_deposits')
  chainDeposits,

  @JsonValue('ledger')
  ledger,

  @JsonValue('ledger_accounts')
  ledgerAccounts,

  @JsonValue('ledger_balances')
  ledgerBalances,

  @JsonValue('ledger_journal_entries')
  ledgerJournalEntries,

  @JsonValue('ledger_outbox')
  ledgerOutbox,

  @JsonValue('ledger_parties')
  ledgerParties,

  @JsonValue('ledger_posting_lines')
  ledgerPostingLines,

  @JsonValue('payments')
  payments,

  /// Represents payment orchestration service
  @JsonValue('payment_orchestrator')
  paymentOrchestrator,

  @JsonValue('payment_methods')
  paymentMethods,

  /// Represents permissions service
  @JsonValue('permissions')
  permissions,

  /// Represents access control policies
  @JsonValue('policies')
  policies,

  /// Represents recipents access policies
  @JsonValue('recipients')
  recipients,

  /// Represents refresh tokens for authentication
  @JsonValue('refresh_tokens')
  refreshTokens,

  /// Represents roles in access control
  @JsonValue('roles')
  roles,

  /// Represents statuses of tasks or projects
  @JsonValue('statuses')
  statuses,

  /// Represents steps in workflows or processes
  @JsonValue('steps')
  steps,

  /// Fallback for unknown values returned by backend.
  @JsonValue('unknown')
  unknown,
}
