

@router.post("/validate-step")
async def validate_step(payload: dict, db: AsyncSession = Depends(get_db),
                        user: User = Depends(get_current_user)):
    """Wizard step validation between steps (step 3, 6, 9, 11 checks)."""
    step = int(payload.get("step", 0))
    data = payload.get("data", {})
    errors = []

    if step == 1:
        if not (data.get("name") or "").strip():
            errors.append("Campaign name is required")
    if step == 2:
        if not data.get("recipient_list_id"):
            errors.append("Select a recipient list")
    if step == 3:
        ids = data.get("subject_set_ids") or []
        if not ids:
            errors.append("Select at least one subject line")
        if len(ids) > cfg.MAX_SUBJECTS:
            errors.append(f"Max {cfg.MAX_SUBJECTS} subject variations")
        strategy = data.get("subject_rotation")
        if strategy not in VALID_ENUMS["subject_rotation"]:
            errors.append("Invalid subject rotation strategy")
=====
app/api/routers/auth.py:43:        httponly=True, samesite="lax", secure=(settings.ENVIRONMENT == "production"),
app/api/routers/auth.py:48:        httponly=False, samesite="lax", secure=(settings.ENVIRONMENT == "production"),
