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:
@@ -3,11 +3,29 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from auth import create_access_token, get_current_user, hash_password, verify_password
|
||||
from database import get_db
|
||||
from models import User
|
||||
from models import User, Variety
|
||||
from schemas import Token, UserCreate, UserLogin, UserOut
|
||||
|
||||
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)
|
||||
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")
|
||||
user = User(email=data.email, hashed_password=hash_password(data.password))
|
||||
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.refresh(user)
|
||||
return user
|
||||
|
||||
Reference in New Issue
Block a user