summaryrefslogtreecommitdiff
path: root/garden/src/types/admin.ts
blob: 036c6e4d9fda7c7588517fd24d1031c880b04add (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
export interface AdminUser {
  username: string;
  email: string;
  display_name: string;
  bio: string;
  birthday: string | null;
  avatar_url: string;
  blinkie_url: string;
  website: string;
  location: string;
  pronouns: string;
  signature: string;
  role: string;
  jade: number;
  honor: number;
  email_verified: boolean;
  warning_count: number;
  account_banned: boolean;
  banned_reason: string;
  banned_at: string | null;
  account_disabled: boolean;
  disabled_reason: string;
  disabled_at: string | null;
  disabled_until: string | null;
  last_seen_at: string | null;
  created_at: string;
}

export interface PaginatedResponse<T> {
  items: T[];
  total: number;
  page: number;
  per_page: number;
  total_pages: number;
}

export interface AuditLogEntry {
  system_ref: string;
  actor: string;
  action: string;
  target_type: string;
  target_ref: string;
  summary: string;
  created_at: string;
}

export interface AuditLogDetail extends AuditLogEntry {
  details: string;
}

export const AUDIT_ACTION_LABELS: Record<string, string> = {
  "user.ban": "Ban User",
  "user.unban": "Unban User",
  "user.disable": "Disable User",
  "user.enable": "Enable User",
  "user.role_change": "Role Change",
  "user.edit": "Edit User",
  "user.warn": "Warn User",
  "user.unwarn": "Deactivate Warning",
  "ticket.update": "Update Ticket",
};

export const AUDIT_TARGET_LABELS: Record<string, string> = {
  user: "User",
  ticket: "Ticket",
};