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,

  /// Represents analytics integration with Amplitude
  @JsonValue('amplitude')
  amplitude,

  /// Represents automation workflows
  @JsonValue('automations')
  automations,

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

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

  /// Represents comments on tasks or other resources
  @JsonValue('comments')
  comments,

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

  /// Represents invoices
  @JsonValue('invoices')
  invoices,

  /// 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,

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

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

  /// Represents task or project priorities
  @JsonValue('priorities')
  priorities,

  /// Represents priority groups
  @JsonValue('priority_groups')
  priorityGroups,

  /// Represents projects managed in the system
  @JsonValue('projects')
  projects,

  @JsonValue('properties')
  properties,

  /// Represents reactions
  @JsonValue('reactions')
  reactions,

  /// 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,

  /// Represents tasks managed in the system
  @JsonValue('tasks')
  tasks,

  /// Represents teams managed in the system
  @JsonValue('teams')
  teams,

  /// Represents workflows for tasks or projects
  @JsonValue('workflows')
  workflows,

  /// Represents workspaces containing projects and teams
  @JsonValue('workspaces')
  workspaces;
}
