diff --git a/models/inventory.py b/models/inventory.py index 5498788..38eed4a 100644 --- a/models/inventory.py +++ b/models/inventory.py @@ -21,7 +21,7 @@ class Inventory(db.Model): timestamp: Mapped[datetime.datetime] = mapped_column('Date Entered', DateTime) condition: Mapped[str] = mapped_column('Working Condition', Unicode(255)) needed: Mapped[str] = mapped_column("Needed", Unicode(255)) - type_id: Mapped[int] = mapped_column('Item Type', Integer, ForeignKey("Items.ID")) + type_id: Mapped[Optional[int]] = mapped_column('Item Type', Integer, ForeignKey("Items.ID"), nullable=True) inventory_name: Mapped[Optional[str]] = mapped_column('Inventory #', Unicode(255)) serial: Mapped[Optional[str]] = mapped_column('Serial #', Unicode(255)) model: Mapped[Optional[str]] = mapped_column('Model #', Unicode(255)) @@ -39,7 +39,7 @@ class Inventory(db.Model): item: Mapped['Item'] = relationship('Item', back_populates='inventory') work_logs: Mapped[List['WorkLog']] = relationship('WorkLog', back_populates='work_item') - def __init__(self, timestamp: datetime.datetime, condition: str, needed: str, type_id: int, + def __init__(self, timestamp: datetime.datetime, condition: str, needed: str, type_id: Optional[int] = None, inventory_name: Optional[str] = None, serial: Optional[str] = None, model: Optional[str] = None, notes: Optional[str] = None, owner_id: Optional[int] = None, brand_id: Optional[int] = None, location_id: Optional[str] = None, barcode: Optional[str] = None, @@ -109,8 +109,10 @@ class Inventory(db.Model): @classmethod def from_dict(cls, data: dict[str, Any]) -> "Inventory": + timestamp_str = data.get("timestamp") + return cls( - timestamp=datetime.datetime.fromisoformat(data.get("timestamp")) if data.get("timestamp") else datetime.datetime.now(), + timestamp = datetime.datetime.fromisoformat(str(timestamp_str)) if timestamp_str else datetime.datetime.now(), condition=data.get("condition", "Unverified"), needed=data.get("needed", ""), type_id=data["type_id"],