From cb213afdf4f856dcfccbe74d5dc485ff4d421d0a Mon Sep 17 00:00:00 2001 From: Felix Zett Date: Thu, 14 Aug 2025 16:55:20 +0200 Subject: [PATCH] add dev_seed --- backend/main.py | 3 +- backend/routes/dev_seed.py | 63 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 backend/routes/dev_seed.py diff --git a/backend/main.py b/backend/main.py index 65478c7..8a67dda 100644 --- a/backend/main.py +++ b/backend/main.py @@ -21,4 +21,5 @@ app.add_middleware( app.include_router(tags.router) app.include_router(items.router) app.include_router(trips.router) -app.include_router(trip_items.router) \ No newline at end of file +app.include_router(trip_items.router) +app.include_router(dev_seed.router) \ No newline at end of file diff --git a/backend/routes/dev_seed.py b/backend/routes/dev_seed.py new file mode 100644 index 0000000..7c860d6 --- /dev/null +++ b/backend/routes/dev_seed.py @@ -0,0 +1,63 @@ +from fastapi import APIRouter, Depends +from sqlalchemy.orm import Session +import uuid +from database import get_db +import models + +FIXED_USER_ID = uuid.UUID("00000000-0000-0000-0000-000000000001") # Fixed UUID for demo user + +router = APIRouter(tags=["dev"]) + +@router.get("/dev/seed") +def seed_data(db: Session = Depends(get_db)): + user_id = FIXED_USER_ID + + # Create demo user if not exists + user = db.query(models.User).filter(models.User.id == user_id).first() + if not user: + user = models.User(id=user_id, name="Demo User") + db.add(user) + db.flush() + + # Tags + tags = ["jari", "kristin", "felix", "auto", "sommer"] + tag_objs = [] + for t in tags: + tag_obj = models.Tag(id=uuid.uuid4(), user_id=user_id, name=t) + db.add(tag_obj) + tag_objs.append(tag_obj) + + db.flush() + + # Items + items_data = [ + ("Badesachen", ["sommer", "auto"]), + ("Sonnencreme", ["sommer"]), + ("Ladegerät", []), + ("Zelt", ["auto"]), + ("Schlafsack", []), + ("Strandspielzeug", ["sommer", "jari"]), + ] + for name, tag_names in items_data: + item = models.Item(id=uuid.uuid4(), user_id=user_id, name=name) + db.add(item) + db.flush() + for tag_name in tag_names: + tag_id = next(t.id for t in tag_objs if t.name == tag_name) + db.add(models.ItemTag(item_id=item.id, tag_id=tag_id)) + + selected_tags = [t for t in tag_objs if t.name in ["jari", "kristin", "auto", "sommer"]] + marked_tags = [t for t in tag_objs if t.name in ["kristin", "felix"]] + trip = models.Trip( + id=uuid.uuid4(), + user_id=user_id, + name="Ostsee August 2025", + start_date="2025-08-01", + end_date="2025-08-14", + selected_tags=selected_tags, + marked_tags=marked_tags, + ) + db.add(trip) + + db.commit() + return {"message": "Seed data created", "user_id": str(user_id)}