b542583303
* feat(backend): ✨ new meal-planner feature * feat(frontend): ✨ new meal plan feature * refactor(backend): ♻️ refactor base services classes and add mixins for crud * feat(frontend): ✨ add UI/API for mealplanner * feat(backend): ✨ add get_today and get_slice options for mealplanner * test(backend): ✅ add and update group mealplanner tests * fix(backend): 🐛 Fix recipe_id column type for PG Co-authored-by: hay-kot <hay-kot@pm.me>
32 lines
704 B
TypeScript
32 lines
704 B
TypeScript
import { BaseCRUDAPI } from "./_base";
|
|
|
|
const prefix = "/api";
|
|
|
|
const routes = {
|
|
mealplan: `${prefix}/groups/mealplans`,
|
|
mealplanId: (id: string | number) => `${prefix}/groups/mealplans/${id}`,
|
|
};
|
|
|
|
type PlanEntryType = "breakfast" | "lunch" | "dinner" | "snack";
|
|
|
|
export interface CreateMealPlan {
|
|
date: string;
|
|
entryType: PlanEntryType;
|
|
title: string;
|
|
text: string;
|
|
recipeId?: number;
|
|
}
|
|
|
|
export interface UpdateMealPlan extends CreateMealPlan {
|
|
id: number;
|
|
groupId: number;
|
|
}
|
|
|
|
export interface MealPlan extends UpdateMealPlan {
|
|
recipe: any;
|
|
}
|
|
|
|
export class MealPlanAPI extends BaseCRUDAPI<MealPlan, CreateMealPlan> {
|
|
baseRoute = routes.mealplan;
|
|
itemRoute = routes.mealplanId;
|
|
}
|