63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
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)}
|