feat: Phase 8 Feedback UI + API endpoints

- New backend/app/api/feedback.py: GET/POST for meal_plan_item feedback
- MealDetail.tsx: star rating, never-suggest checkbox, reason dropdown,
  free-text comments, displays saved feedback
- frontend/src/api/index.ts + types: feedback API + TypeScript interface
- backend/app/schemas/__init__.py: model_validator maps qty→quantity for
  RecipeIngredient (fixes Pydantic validation on recipe JSONB)
- docs/HANDOFF.md: mark Phase 8 complete, update file map and date
This commit is contained in:
2026-05-14 09:54:25 -07:00
parent e618b2bd5a
commit f7ed10651b
8 changed files with 353 additions and 26 deletions
+5
View File
@@ -75,6 +75,11 @@ export const mealPlannerApi = {
getStats: () => api.get('/admin/stats'),
testEmail: (email: string) => api.post('/admin/test-email', null, { params: { email } }),
},
feedback: {
get: (mealPlanItemId: string) => api.get(`/feedback/${mealPlanItemId}`),
create: (data: any) => api.post('/feedback', data),
},
}
export default api