add dev_seed

This commit is contained in:
Felix Zett 2025-08-14 16:55:20 +02:00
parent 2d11a362ea
commit cb213afdf4
2 changed files with 65 additions and 1 deletions

View file

@ -22,3 +22,4 @@ app.include_router(tags.router)
app.include_router(items.router) app.include_router(items.router)
app.include_router(trips.router) app.include_router(trips.router)
app.include_router(trip_items.router) app.include_router(trip_items.router)
app.include_router(dev_seed.router)

View file

@ -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)}