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 03d51fa..6dc216c 100644 --- a/model/user.py +++ b/model/user.py @@ -1,13 +1,16 @@ from dataclasses import dataclass -import json +from datetime import datetime from utils.token import generateKey + @dataclass class User: id: int + email: str + password_hash: str name: str role: str - token: str + created_at: datetime def __init__(self, email: str, passwd: str): #us = getUsModel() #возвращает словарь @@ -18,3 +21,12 @@ class User: def toJson(self): return {"user": {"id": self.id, "name": self.name, "role": self.role}, "token": self.token} + + def is_admin(self) -> bool: + return self.role == 'admin' + + def is_operator(self) -> bool: + return self.role == 'operator' + + def is_viewer(self) -> bool: + return self.role == 'viewer'