Seed new accounts with 3 starter varieties

Cherry Tomato, Sweet Basil, and French Marigold are added to every
new user's seed library on registration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-09 00:12:11 -07:00
parent eda7a39657
commit 0cdb2c2c2d

View File

@@ -3,11 +3,29 @@ from sqlalchemy.orm import Session
from auth import create_access_token, get_current_user, hash_password, verify_password from auth import create_access_token, get_current_user, hash_password, verify_password
from database import get_db from database import get_db
from models import User from models import User, Variety
from schemas import Token, UserCreate, UserLogin, UserOut from schemas import Token, UserCreate, UserLogin, UserOut
router = APIRouter(prefix="/auth", tags=["auth"]) router = APIRouter(prefix="/auth", tags=["auth"])
STARTER_VARIETIES = [
dict(name="Tomato", variety_name="Cherry", category="vegetable",
weeks_to_start=8, weeks_to_greenhouse=2, weeks_to_garden=2,
days_to_germinate=7, frost_tolerant=False, sun_requirement="full_sun",
water_needs="medium", color="#e76f51",
notes="Great in containers. Very prolific producer."),
dict(name="Basil", variety_name="Sweet", category="herb",
weeks_to_start=6, weeks_to_greenhouse=1, weeks_to_garden=2,
days_to_germinate=7, frost_tolerant=False, sun_requirement="full_sun",
water_needs="medium", color="#40916c",
notes="Very frost sensitive. Transplant after all danger of frost."),
dict(name="Marigold", variety_name="French", category="flower",
weeks_to_start=6, weeks_to_greenhouse=1, weeks_to_garden=0,
days_to_germinate=5, frost_tolerant=False, sun_requirement="full_sun",
water_needs="low", color="#f4a261",
notes="Great companion plant for tomatoes. Deters pests."),
]
@router.post("/register", response_model=UserOut, status_code=201) @router.post("/register", response_model=UserOut, status_code=201)
def register(data: UserCreate, db: Session = Depends(get_db)): def register(data: UserCreate, db: Session = Depends(get_db)):
@@ -15,6 +33,9 @@ def register(data: UserCreate, db: Session = Depends(get_db)):
raise HTTPException(status_code=400, detail="Email already registered") raise HTTPException(status_code=400, detail="Email already registered")
user = User(email=data.email, hashed_password=hash_password(data.password)) user = User(email=data.email, hashed_password=hash_password(data.password))
db.add(user) db.add(user)
db.flush() # get user.id before commit
for v in STARTER_VARIETIES:
db.add(Variety(**v, user_id=user.id))
db.commit() db.commit()
db.refresh(user) db.refresh(user)
return user return user