--- description: Add subtitles to Genres and Specials --- # Implementation Plan - Add Subtitles to Genres and Specials The goal is to add a `subtitle` field to both `Genre` and `Special` models, allowing administrators to provide descriptions. These subtitles will be displayed as tooltips on the homepage. ## 1. Database Schema Changes - [ ] Modify `prisma/schema.prisma`: - Add `subtitle String?` to the `Genre` model. - Add `subtitle String?` to the `Special` model. - [ ] Create a migration: `npx prisma migrate dev --name add_subtitles` ## 2. Backend API Updates - [ ] Update `app/api/genres/route.ts`: - Update `POST` to accept `subtitle`. - Add `PUT` method to allow updating genre name and subtitle. - [ ] Update `app/api/specials/route.ts`: - Update `POST` to accept `subtitle`. - Update `PUT` to accept `subtitle`. ## 3. Admin UI Updates - [ ] Update `app/admin/page.tsx`: - **Genres**: - Update the "Add Genre" form to include an input for `subtitle`. - Add an "Edit" button for each genre. - Implement a form/modal to edit genre name and subtitle. - Display the subtitle in the list of genres. - **Specials**: - Update the "Create Special" form to include an input for `subtitle`. - Update the "Edit Special" form (in the conditional rendering) to include `subtitle`. - [ ] Update `app/admin/specials/[id]/page.tsx`: - Update the display to show the subtitle under the title. ## 4. Frontend Updates - [ ] Update `app/page.tsx`: - Fetch `subtitle` for genres and specials (already covered by `findMany`). - Add a tooltip to the links. - For `Link` components, we can use the `title` attribute for a native tooltip, or build a custom CSS tooltip. The user asked for "gut lesbarer Tooltip" (readable tooltip). Native `title` is often small and delayed. A custom CSS tooltip (using a group/hover pattern) would be better. - I will implement a simple CSS-based tooltip component or style. ## 5. Verification - [ ] Verify database migration. - [ ] Verify creating a genre with a subtitle. - [ ] Verify creating/editing a special with a subtitle. - [ ] Verify tooltips on the homepage.