diff --git a/backend/main.py b/backend/main.py index 940a0e63d34649b4a86a829518f1b83a466d0b50..e889389db3a3ff12d2e2fef9853e47e66da3ef4e 100644 --- a/backend/main.py +++ b/backend/main.py @@ -58,14 +58,12 @@ def list_storages(db: Session = Depends(get_db)): return utils.get_storages(db) -@app.post("/checkin/{item_uuid}/at/{storage_name}", response_model=schemas.Item) -def checkin_item_by_uuid( - item_uuid: str, storage_name: str, db: Session = Depends(get_db) -): - item = utils.get_item_by_uuid(db, UUID(item_uuid)) +@app.post("/checkin", response_model=schemas.Item) +def checkin_item_by_uuid(checkin: schemas.ItemCheckin, db: Session = Depends(get_db)): + item = utils.get_item_by_uuid(db, UUID(checkin.item_uuid)) if item is None: raise HTTPException(status_code=404, detail="Item not found") - storage = utils.get_storage(db, storage_name) + storage = utils.get_storage(db, checkin.storage_name) if storage is None: raise HTTPException(status_code=404, detail="Storage not found") return utils.receive_item(db, item, storage) diff --git a/backend/models.py b/backend/models.py index 70837b3afc1c8c61316140a0fbd05396faf099b5..50fea03b1b71f5f5823fab86065c8d94d3d49f55 100644 --- a/backend/models.py +++ b/backend/models.py @@ -31,7 +31,7 @@ class Item(db_Base): tag = sql_Column(sql_String(6), nullable=True, default=None) storage = sql_Column( - sql_Uuid, sql_ForeignKey("store.name"), nullable=True, default=None + sql_String(16), sql_ForeignKey("store.name"), nullable=True, default=None ) stored_at = sql_relationship("Storage", back_populates="items") diff --git a/backend/schemas.py b/backend/schemas.py index 9e878208a17ae6dd588be336506d7a68a70c935b..e20a77116631b6c2eaf8124d285272d0a0ca8dc7 100644 --- a/backend/schemas.py +++ b/backend/schemas.py @@ -30,11 +30,19 @@ class ItemCreateByImageAtStorage(BaseModel): storage_uuid: UUID4 +class ItemCheckin(BaseModel): + item_uuid: str + storage_name: str + num: Union[int, None] = 1 + + class Item(BaseModel): uuid: UUID4 created_at: datetime received_at: Union[datetime, None] = None + verification: bytes + addressee: Union[str, None] = None team: Union[str, None] = None images: List[Image] = [] @@ -44,7 +52,7 @@ class Item(BaseModel): tag: Union[str, None] = None - stored_at: Union[Storage, None] = None + storage: Union[str, None] = None class Config: orm_mode = True