feat(model): Added correct data models

This commit is contained in:
Kita Trofimov
2025-10-26 00:11:20 +03:00
parent 7ccc9385e6
commit 79cac3d8cb
5 changed files with 55 additions and 14 deletions
+6
View File
@@ -0,0 +1,6 @@
from .robot import Robot
from .product import Product
from .inventory import InventoryRecord
from .user import User
__all__ = ['Robot', 'Product', 'InventoryRecord', 'User']
+14
View File
@@ -0,0 +1,14 @@
from dataclasses import dataclass
from datetime import datetime
@dataclass
class InventoryRecord:
id: int
robot_id: str
product_id: str
quantity: int
zone: str
row_number: int
shelf_number: int
status: str
scanned_at: datetime
created_at: datetime
+9
View File
@@ -0,0 +1,9 @@
from dataclasses import dataclass
@dataclass
class Product:
id: str
name: str
category: str
min_stock: int
optimal_stock: int
+13
View File
@@ -0,0 +1,13 @@
from dataclasses import dataclass
from datetime import datetime
from typing import Optional
@dataclass
class Robot:
id: str
status: str
battery_level: int
last_update: datetime
current_zone: Optional[str] = None
current_row: Optional[int] = None
current_shelf: Optional[int] = None
+13 -14
View File
@@ -1,22 +1,21 @@
from dataclasses import dataclass from dataclasses import dataclass
import json from datetime import datetime
from utils.token import generateKey
@dataclass @dataclass
class user: class User:
id: int id: int
email: str
password_hash: str
name: str name: str
role: str role: str
token: str created_at: datetime
@classmethod def is_admin(self) -> bool:
def initialize(cls, email:str, passwd:str): return self.role == 'admin'
#us = getUsModel() #возвращает словарь
id = 1#us['id']
name = 'Bob'#us['name']
role = 'Backend'#us['role']
token = generateKey(email, passwd)
return cls(id=id, name=name, role=role, token=token)
def toJSON(self): def is_operator(self) -> bool:
return json.dumps({"token": f'{self.token}', "user": {"id": self.id, "role": f'{self.role}', "name": f'{self.name}'}}) return self.role == 'operator'
def is_viewer(self) -> bool:
return self.role == 'viewer'