import { api } from "./client"

export type ActorLite = {
  id: number
  username: string
  email?: string | null
  full_name?: string | null
}

export type TenantLite = {
  id: number
  name: string
  slug?: string
}

export type AuditLog = {
  id: number
  action: string
  entity_type?: string | null
  entity_id?: number | null
  entity_label?: string | null
  tenant?: TenantLite | null
  actor?: ActorLite | null
  metadata?: any
  created_at: string
}

export type SessionInfo = {
  id: string
  ip?: string | null
  user_agent?: string | null
  last_seen?: string | null
}

export function listAuditLogs(): Promise<AuditLog[]> {
  return api.request("/audit-logs/")
}

export function listSessions(): Promise<SessionInfo[]> {
  return api.request("/sessions/")
}

export function revokeSession(id: string): Promise<void> {
  return api.request(`/sessions/${id}/`, { method: "DELETE" })
}

export function revokeAllSessions(): Promise<void> {
  return api.request("/sessions/revoke-all/", { method: "POST" })
}
