forked from Soju06/codex-lb
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschemas.py
More file actions
131 lines (90 loc) · 3.33 KB
/
Copy pathschemas.py
File metadata and controls
131 lines (90 loc) · 3.33 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
from __future__ import annotations
from datetime import datetime
from typing import List
from pydantic import Field
from app.modules.shared.schemas import DashboardModel
class UsageTrendPoint(DashboardModel):
t: datetime
v: float
class AccountUsageTrend(DashboardModel):
primary: list[UsageTrendPoint] = Field(default_factory=list)
secondary: list[UsageTrendPoint] = Field(default_factory=list)
class AccountUsage(DashboardModel):
primary_remaining_percent: float | None = None
secondary_remaining_percent: float | None = None
class AccountRequestUsage(DashboardModel):
request_count: int = 0
total_tokens: int = 0
cached_input_tokens: int = 0
total_cost_usd: float = 0.0
class AccountTokenStatus(DashboardModel):
expires_at: datetime | None = None
state: str | None = None
class AccountAuthStatus(DashboardModel):
access: AccountTokenStatus | None = None
refresh: AccountTokenStatus | None = None
id_token: AccountTokenStatus | None = None
class AccountAdditionalWindow(DashboardModel):
used_percent: float
reset_at: int | None = None
window_minutes: int | None = None
class AccountAdditionalQuota(DashboardModel):
quota_key: str | None = None
limit_name: str
metered_feature: str
display_label: str | None = None
primary_window: AccountAdditionalWindow | None = None
secondary_window: AccountAdditionalWindow | None = None
class AccountSummary(DashboardModel):
account_id: str
email: str
display_name: str
plan_type: str
status: str
usage: AccountUsage | None = None
reset_at_primary: datetime | None = None
reset_at_secondary: datetime | None = None
window_minutes_primary: int | None = None
window_minutes_secondary: int | None = None
last_refresh_at: datetime | None = None
capacity_credits_primary: float | None = None
remaining_credits_primary: float | None = None
capacity_credits_secondary: float | None = None
remaining_credits_secondary: float | None = None
request_usage: AccountRequestUsage | None = None
additional_quotas: list[AccountAdditionalQuota] = Field(default_factory=list)
deactivation_reason: str | None = None
auth: AccountAuthStatus | None = None
class AccountsResponse(DashboardModel):
accounts: List[AccountSummary] = Field(default_factory=list)
class AccountImportResponse(DashboardModel):
account_id: str
email: str
plan_type: str
status: str
class OpenCodeOAuthAuth(DashboardModel):
type: str = "oauth"
refresh: str
access: str
expires: int = Field(ge=0)
account_id: str | None = None
class OpenCodeAuthJson(DashboardModel):
openai: OpenCodeOAuthAuth
class AccountOpenCodeAuthExportAccount(DashboardModel):
account_id: str
chatgpt_account_id: str | None = None
email: str
class AccountOpenCodeAuthExportResponse(DashboardModel):
filename: str
account: AccountOpenCodeAuthExportAccount
auth_json: OpenCodeAuthJson
class AccountPauseResponse(DashboardModel):
status: str
class AccountReactivateResponse(DashboardModel):
status: str
class AccountDeleteResponse(DashboardModel):
status: str
class AccountTrendsResponse(DashboardModel):
account_id: str
primary: list[UsageTrendPoint] = Field(default_factory=list)
secondary: list[UsageTrendPoint] = Field(default_factory=list)