Projekt

Obecné

Profil

Stáhnout (3.84 KB) Statistiky
| Větev: | Tag: | Revize:
1 aba60b70 Matej Zeman
from typing import List, Optional
2 99c92c11 Matej Zeman
from datetime import datetime, date
3 aba60b70 Matej Zeman
from pydantic import BaseModel
4
5
6 6c1e92e3 Matej Zeman
class DeviceLicenseBase(BaseModel):
7
    device_id: int
8
    license_id: int
9
    assigned_datetime: str
10
11
12
class DeviceLicenseCreate(DeviceLicenseBase):
13
    pass
14
15
16
class DeviceLicense(DeviceLicenseCreate):
17 4911f0ea Matej Zeman
    """
18
    Class used for creating and reading devices_licenses entries
19
    """
20 6c1e92e3 Matej Zeman
    id: int
21
22
    class Config:
23
        orm_mode = True
24
25
26 aba60b70 Matej Zeman
class USBLogBase(BaseModel):
27 99c92c11 Matej Zeman
    timestamp: datetime
28 aba60b70 Matej Zeman
    status: str
29
30
31
class USBLogCreate(USBLogBase):
32
    pass
33
34
35
class USBLog(USBLogBase):
36 4911f0ea Matej Zeman
    """
37
    Class used for creating and reading usb_logs entries
38
    """
39 aba60b70 Matej Zeman
    id: int
40
    device_id: int
41 6c1e92e3 Matej Zeman
    pc_id: int
42 aba60b70 Matej Zeman
43
    class Config:
44
        orm_mode = True
45
46
47
class DeviceBase(BaseModel):
48 99c92c11 Matej Zeman
    vendor_id: str
49
    product_id: str
50 aba60b70 Matej Zeman
    serial_number: str
51
52
53
class DeviceCreate(DeviceBase):
54
    pass
55
56
57 99c92c11 Matej Zeman
class Device(DeviceCreate):
58 4911f0ea Matej Zeman
    """
59
    Class used for creating and reading devices entries
60
    """
61 aba60b70 Matej Zeman
    id: int
62 99c92c11 Matej Zeman
    assigned: bool
63 aba60b70 Matej Zeman
    logs: List[USBLog] = []
64 6c1e92e3 Matej Zeman
    licenses: List[DeviceLicense] = []
65
66
    class Config:
67
        orm_mode = True
68
69
70 eaf8ace4 Matej Zeman
class LDLogBase(BaseModel):
71
    timestamp: datetime
72
    status: str
73
74
75
class LDLogCreate(LDLogBase):
76
    pass
77
78
79
class LDLog(LDLogCreate):
80 4911f0ea Matej Zeman
    """
81
    Class used for creating and reading ld_logs entries
82
    """
83 eaf8ace4 Matej Zeman
    id: int
84
    head_id: int
85
    body_id: int
86
87
    class Config:
88
        orm_mode = True
89
90
91
class BodyDeviceBase(BaseModel):
92
    serial_number: str
93
94
95
class BodyDeviceCreate(BodyDeviceBase):
96
    pass
97
98
99
class BodyDevice(BodyDeviceCreate):
100 4911f0ea Matej Zeman
    """
101
    Class used for creating and reading body_devices entries
102
    """
103 eaf8ace4 Matej Zeman
    id: int
104
    logs: List[LDLog] = []
105
106
    class Config:
107
        orm_mode = True
108
109
110
class HeadDeviceBase(BaseModel):
111
    serial_number: str
112
113
114
class HeadDeviceCreate(HeadDeviceBase):
115
    pass
116
117
118
class HeadDevice(HeadDeviceCreate):
119 4911f0ea Matej Zeman
    """
120
    Class used for creating and reading head_devices entries
121
    """
122 eaf8ace4 Matej Zeman
    id: int
123
    logs: List[LDLog] = []
124
125
    class Config:
126
        orm_mode = True
127
128
129 6c1e92e3 Matej Zeman
class PCBase(BaseModel):
130
    username: str
131
    hostname: str
132
133
134
class PCCreate(PCBase):
135
    pass
136
137
138
class PC(PCCreate):
139 4911f0ea Matej Zeman
    """
140
    Class used for creating and reading pc entries
141
    """
142 6c1e92e3 Matej Zeman
    id: int
143 99c92c11 Matej Zeman
    assigned: bool
144 6c1e92e3 Matej Zeman
    logs_pc: List[USBLog] = []
145
146
    class Config:
147
        orm_mode = True
148
149
150 99c92c11 Matej Zeman
class TeamBase(BaseModel):
151
    name: str
152
153
154
class TeamCreate(TeamBase):
155
    pass
156
157
158
class Team(TeamCreate):
159 4911f0ea Matej Zeman
    """
160
    Class used for creating and reading team entries
161
    """
162 99c92c11 Matej Zeman
    id: int
163
    pcs: List[PC] = []
164
165
    class Config:
166
        orm_mode = True
167
168
169 6c1e92e3 Matej Zeman
class LicenseBase(BaseModel):
170
    name: str
171 99c92c11 Matej Zeman
    expiration_date: date
172 6c1e92e3 Matej Zeman
173
174
class LicenseCreate(LicenseBase):
175
    pass
176
177
178
class License(LicenseCreate):
179 4911f0ea Matej Zeman
    """
180
    Class used for creating and reading licenses entries
181
    """
182 6c1e92e3 Matej Zeman
    id: int
183
    devices: List[DeviceLicense] = []
184 aba60b70 Matej Zeman
185
    class Config:
186
        orm_mode = True
187
188
189
class USBTempBase(BaseModel):
190 4911f0ea Matej Zeman
    """
191
    Class used for reading data from keyman detecting client messages
192
    """
193 aba60b70 Matej Zeman
    username: str
194
    hostname: str
195
    timestamp: str
196
    device: DeviceBase
197
    status: str
198
199
200
class USBTempCreate(USBTempBase):
201
    pass
202
203
204
class USBTemp(USBTempBase):
205
    id: int
206
    device_id: int
207
208
    class Config:
209
        orm_mode = True
210 eaf8ace4 Matej Zeman
211
212
class LDTempBase(BaseModel):
213 4911f0ea Matej Zeman
    """
214
    Class used for reading data from debugger detecting client messages
215
    """
216 eaf8ace4 Matej Zeman
    username: str
217
    hostname: str
218
    timestamp: str
219
    head_device: HeadDeviceBase
220
    body_device: BodyDeviceBase
221
    status: str
222
223
224
class LDTempCreate(LDTempBase):
225
    pass
226
227
228
class LDTemp(LDTempCreate):
229
    id: int
230
    head_id: int
231
    body_id: int
232
233
    class Config:
234
        orm_mode = True
235 cbd239c6 Matej Zeman
236
237
class UserBase(BaseModel):
238
    """
239
    Classes used for creating new User entry
240
    """
241
    username: str
242
    password: str
243
    role: str
244
245
class UserCreate(UserBase):
246
    pass
247
248
249
class User(UserCreate):
250
    id: int
251
252
    class Config:
253
        orm_mode = True