@router.post("/create") async def create_campaign(payload: CampaignIn, db: AsyncSession = Depends(get_db), user: User = Depends(get_current_user), _: None = Depends(require_csrf)): """Create a new campaign (wizard step 12 / Save). Validates all references.""" errors = await _validate_refs(db, user, payload) if errors: raise HTTPException(status_code=400, detail={"message": "Validation failed", "errors": errors}) c = Campaign(user_id=user.id, **payload.model_dump()) db.add(c) === 69: r = api.post("/auth/logout", headers={"X-CSRF-Token": ""}) 73: r = api.post("/auth/logout", headers={"X-CSRF-Token": "forged-token"}) 232: r = api.post("/recipients/import", data={"list_id": "1"}, files=files, cookies={})