From d8c869ebc1ec307342ab03fe76186a8b5bfc57c6 Mon Sep 17 00:00:00 2001
From: hanfi <ccc@spahan.ch>
Date: Fri, 16 Jun 2023 08:23:17 +0200
Subject: [PATCH] fix checkin

---
 backend/main.py    | 10 ++++------
 backend/models.py  |  2 +-
 backend/schemas.py | 10 +++++++++-
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/backend/main.py b/backend/main.py
index 940a0e6..e889389 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 70837b3..50fea03 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 9e87820..e20a771 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
-- 
GitLab