/** 跨方言共享的枚举常量。schema 与 Repository 共用，避免字符串字面量散落。 */
export const UserRoles = { USER: 'user', ADMIN: 'admin' } as const

export const SessionStatus = { ACTIVE: 'active', ARCHIVED: 'archived' } as const

export const ApiProviderStatus = {
  NOT_CONFIGURED: 'not_configured',
  CONNECTED: 'connected',
  CLI_AUTHENTICATED: 'cli_authenticated',
  DISCONNECTED: 'disconnected',
  ERROR: 'error',
} as const

export const ImChannelType = {
  FEISHU: 'feishu',
  TELEGRAM: 'telegram',
  DISCORD: 'discord',
  WEIXIN: 'weixin',
  DINGTALK: 'dingtalk',
  WECOM: 'wecom',
} as const

export const ImChannelStatus = {
  CONNECTED: 'connected',
  DISCONNECTED: 'disconnected',
  NOT_CONFIGURED: 'not_configured',
  ERROR: 'error',
} as const

export const ActionType = {
  RUN_AGENT: 'run-agent',
  RUN_SKILL: 'run-skill',
  CUSTOM_PROMPT: 'custom-prompt',
} as const

export const TaskExecutionStatus = { OK: 'ok', ALERT: 'alert', ERROR: 'error' } as const

export const HookAction = { SHELL: 'shell', BLOCK: 'block', LOG: 'log' } as const

export const WorkspaceRole = { OWNER: 'owner', ADMIN: 'admin', MEMBER: 'member', VIEWER: 'viewer' } as const

export const InvitationStatus = {
  PENDING: 'pending',
  PHONE_VERIFIED: 'phone_verified',
  QR_GENERATED: 'qr_generated',
  BOT_SCANNED: 'bot_scanned',
  BOT_CONNECTED: 'bot_connected',
  COMPLETED: 'completed',
  EXPIRED: 'expired',
  CANCELLED: 'cancelled',
} as const

export const PairingStatus = { PENDING: 'pending', APPROVED: 'approved', EXPIRED: 'expired' } as const
