diff --git a/model/__init__.py b/model/__init__.py new file mode 100644 index 0000000..5e9673e --- /dev/null +++ b/model/__init__.py @@ -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'] \ No newline at end of file diff --git a/model/inventory.py b/model/inventory.py new file mode 100644 index 0000000..dc7820d --- /dev/null +++ b/model/inventory.py @@ -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 \ No newline at end of file diff --git a/model/product.py b/model/product.py new file mode 100644 index 0000000..8afdd95 --- /dev/null +++ b/model/product.py @@ -0,0 +1,9 @@ +from dataclasses import dataclass + +@dataclass +class Product: + id: str + name: str + category: str + min_stock: int + optimal_stock: int \ No newline at end of file diff --git a/model/robot.py b/model/robot.py new file mode 100644 index 0000000..fd3847e --- /dev/null +++ b/model/robot.py @@ -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 \ No newline at end of file diff --git a/model/user.py b/model/user.py index ad41017..0b8fd7e 100644 --- a/model/user.py +++ b/model/user.py @@ -1,22 +1,21 @@ from dataclasses import dataclass -import json -from utils.token import generateKey +from datetime import datetime + @dataclass -class user: +class User: id: int + email: str + password_hash: str name: str role: str - token: str + created_at: datetime - @classmethod - def initialize(cls, email:str, passwd:str): - #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 is_admin(self) -> bool: + return self.role == 'admin' - def toJSON(self): - return json.dumps({"token": f'{self.token}', "user": {"id": self.id, "role": f'{self.role}', "name": f'{self.name}'}}) + def is_operator(self) -> bool: + return self.role == 'operator' + + def is_viewer(self) -> bool: + return self.role == 'viewer' \ No newline at end of file