Projekt

Obecné

Profil

Stáhnout (4.47 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 35168e5f zemanm98@students.zcu.cz
    inventory_number: str
52
    comment: str
53 aba60b70 Matej Zeman
54
55
class DeviceCreate(DeviceBase):
56
    pass
57
58
59 99c92c11 Matej Zeman
class Device(DeviceCreate):
60 4911f0ea Matej Zeman
    """
61
    Class used for creating and reading devices entries
62
    """
63 aba60b70 Matej Zeman
    id: int
64
    logs: List[USBLog] = []
65 6c1e92e3 Matej Zeman
    licenses: List[DeviceLicense] = []
66
67
    class Config:
68
        orm_mode = True
69
70
71 35168e5f zemanm98@students.zcu.cz
class DeviceTemp(BaseModel):
72 0fcb708f Matej Zeman
    """
73
    Class used for reading data from client
74
    """
75 35168e5f zemanm98@students.zcu.cz
    vendor_id: str
76
    product_id: str
77
    serial_number: str
78
79
80 eaf8ace4 Matej Zeman
class LDLogBase(BaseModel):
81
    timestamp: datetime
82
    status: str
83
84
85
class LDLogCreate(LDLogBase):
86
    pass
87
88
89
class LDLog(LDLogCreate):
90 4911f0ea Matej Zeman
    """
91
    Class used for creating and reading ld_logs entries
92
    """
93 eaf8ace4 Matej Zeman
    id: int
94
    head_id: int
95
    body_id: int
96
97
    class Config:
98
        orm_mode = True
99
100
101
class BodyDeviceBase(BaseModel):
102
    serial_number: str
103 6ad54e2e zemanm98@students.zcu.cz
    inventory_number: str
104
    comment: str
105 eaf8ace4 Matej Zeman
106
107
class BodyDeviceCreate(BodyDeviceBase):
108
    pass
109
110
111
class BodyDevice(BodyDeviceCreate):
112 4911f0ea Matej Zeman
    """
113
    Class used for creating and reading body_devices entries
114
    """
115 eaf8ace4 Matej Zeman
    id: int
116
    logs: List[LDLog] = []
117
118
    class Config:
119
        orm_mode = True
120
121
122 6ad54e2e zemanm98@students.zcu.cz
class BodyDeviceTemp(BaseModel):
123 0fcb708f Matej Zeman
    """
124
    Class used for reading body device data from client
125
    """
126 6ad54e2e zemanm98@students.zcu.cz
    serial_number: str
127
128
129 eaf8ace4 Matej Zeman
class HeadDeviceBase(BaseModel):
130
    serial_number: str
131 6ad54e2e zemanm98@students.zcu.cz
    inventory_number: str
132
    comment: str
133 eaf8ace4 Matej Zeman
134
135
class HeadDeviceCreate(HeadDeviceBase):
136
    pass
137
138
139
class HeadDevice(HeadDeviceCreate):
140 4911f0ea Matej Zeman
    """
141
    Class used for creating and reading head_devices entries
142
    """
143 eaf8ace4 Matej Zeman
    id: int
144
    logs: List[LDLog] = []
145
146
    class Config:
147
        orm_mode = True
148
149
150 6ad54e2e zemanm98@students.zcu.cz
class HeadDeviceTemp(BaseModel):
151 0fcb708f Matej Zeman
    """
152
    Class used for reading head device data from client
153
    """
154 6ad54e2e zemanm98@students.zcu.cz
    serial_number: str
155
156
157 6c1e92e3 Matej Zeman
class PCBase(BaseModel):
158
    username: str
159
    hostname: str
160
161
162
class PCCreate(PCBase):
163
    pass
164
165
166
class PC(PCCreate):
167 4911f0ea Matej Zeman
    """
168
    Class used for creating and reading pc entries
169
    """
170 6c1e92e3 Matej Zeman
    id: int
171
    logs_pc: List[USBLog] = []
172 35168e5f zemanm98@students.zcu.cz
    logs_ld: List[LDLog] = []
173 6c1e92e3 Matej Zeman
174
    class Config:
175
        orm_mode = True
176
177
178 99c92c11 Matej Zeman
class TeamBase(BaseModel):
179
    name: str
180
181
182
class TeamCreate(TeamBase):
183
    pass
184
185
186
class Team(TeamCreate):
187 4911f0ea Matej Zeman
    """
188
    Class used for creating and reading team entries
189
    """
190 99c92c11 Matej Zeman
    id: int
191 35168e5f zemanm98@students.zcu.cz
    devices: List[Device] = []
192 99c92c11 Matej Zeman
193
    class Config:
194
        orm_mode = True
195
196
197 6c1e92e3 Matej Zeman
class LicenseBase(BaseModel):
198
    name: str
199 35168e5f zemanm98@students.zcu.cz
    license_id: str
200 99c92c11 Matej Zeman
    expiration_date: date
201 6c1e92e3 Matej Zeman
202
203
class LicenseCreate(LicenseBase):
204
    pass
205
206
207
class License(LicenseCreate):
208 4911f0ea Matej Zeman
    """
209
    Class used for creating and reading licenses entries
210
    """
211 6c1e92e3 Matej Zeman
    id: int
212
    devices: List[DeviceLicense] = []
213 6ad54e2e zemanm98@students.zcu.cz
    head_devices: List[HeadDevice] = []
214
    body_devices: List[BodyDevice] = []
215 aba60b70 Matej Zeman
216
    class Config:
217
        orm_mode = True
218
219
220
class USBTempBase(BaseModel):
221 4911f0ea Matej Zeman
    """
222
    Class used for reading data from keyman detecting client messages
223
    """
224 aba60b70 Matej Zeman
    username: str
225
    hostname: str
226
    timestamp: str
227 35168e5f zemanm98@students.zcu.cz
    device: DeviceTemp
228 aba60b70 Matej Zeman
    status: str
229
230
231
class USBTempCreate(USBTempBase):
232
    pass
233
234
235
class USBTemp(USBTempBase):
236
    id: int
237
    device_id: int
238
239
    class Config:
240
        orm_mode = True
241 eaf8ace4 Matej Zeman
242
243
class LDTempBase(BaseModel):
244 4911f0ea Matej Zeman
    """
245
    Class used for reading data from debugger detecting client messages
246
    """
247 eaf8ace4 Matej Zeman
    username: str
248
    hostname: str
249
    timestamp: str
250 6ad54e2e zemanm98@students.zcu.cz
    head_device: HeadDeviceTemp
251
    body_device: BodyDeviceTemp
252 eaf8ace4 Matej Zeman
    status: str
253
254
255
class LDTempCreate(LDTempBase):
256
    pass
257
258
259
class LDTemp(LDTempCreate):
260
    id: int
261
    head_id: int
262
    body_id: int
263
264
    class Config:
265
        orm_mode = True
266 cbd239c6 Matej Zeman
267
268
class UserBase(BaseModel):
269
    """
270
    Classes used for creating new User entry
271
    """
272
    username: str
273
    password: str
274
    role: str
275
276 35168e5f zemanm98@students.zcu.cz
277 cbd239c6 Matej Zeman
class UserCreate(UserBase):
278
    pass
279
280
281
class User(UserCreate):
282
    id: int
283
284
    class Config:
285
        orm_mode = True