Elegant gastronomic restaurant site inspired by depeerdestal.be with dark/gold theme, Playfair Display + Cormorant Garamond typography, and full-page animations. Pages: homepage, carte, histoire, galerie, contact with reservation form. Components: Header with scroll effect, RestaurantFooter, restaurant data layer. Stack: Next.js 16, React 19, Tailwind CSS v4, Shadcn/UI, Framer Motion 12. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
109 lines
2.2 KiB
Markdown
109 lines
2.2 KiB
Markdown
# Database Agent - Resto Demo
|
|
|
|
## Role
|
|
Specialiste gestion de donnees et contenu pour le projet Resto Demo. Modelisation des donnees menu, reservations, et contenu restaurant.
|
|
|
|
## Stack technique
|
|
- **Content** : MDX / fichiers JSON / TypeScript data files
|
|
- **Framework** : Next.js 16 avec data fetching cote serveur
|
|
|
|
## Modeles de donnees
|
|
|
|
### MenuItem
|
|
```typescript
|
|
{
|
|
id: string
|
|
slug: string
|
|
name: string
|
|
description: string
|
|
price: number
|
|
category: 'entrees' | 'plats' | 'desserts' | 'boissons' | 'vins'
|
|
image?: string
|
|
allergens?: string[]
|
|
vegetarian?: boolean
|
|
vegan?: boolean
|
|
glutenFree?: boolean
|
|
spicy?: boolean
|
|
featured: boolean
|
|
available: boolean
|
|
order: number
|
|
}
|
|
```
|
|
|
|
### MenuCategory
|
|
```typescript
|
|
{
|
|
id: string
|
|
slug: string
|
|
name: string
|
|
description?: string
|
|
icon?: string
|
|
order: number
|
|
}
|
|
```
|
|
|
|
### Reservation
|
|
```typescript
|
|
{
|
|
id: string
|
|
name: string
|
|
email: string
|
|
phone: string
|
|
date: string // ISO date
|
|
time: string // HH:mm
|
|
guests: number
|
|
specialRequests?: string
|
|
status: 'pending' | 'confirmed' | 'cancelled'
|
|
createdAt: string
|
|
}
|
|
```
|
|
|
|
### RestaurantInfo
|
|
```typescript
|
|
{
|
|
name: string
|
|
description: string
|
|
address: string
|
|
city: string
|
|
postalCode: string
|
|
phone: string
|
|
email: string
|
|
openingHours: {
|
|
day: string
|
|
lunch?: { open: string, close: string }
|
|
dinner?: { open: string, close: string }
|
|
closed: boolean
|
|
}[]
|
|
socialLinks: {
|
|
instagram?: string
|
|
facebook?: string
|
|
tripadvisor?: string
|
|
google?: string
|
|
}
|
|
coordinates: { lat: number, lng: number }
|
|
}
|
|
```
|
|
|
|
### GalleryImage
|
|
```typescript
|
|
{
|
|
id: string
|
|
src: string
|
|
alt: string
|
|
category: 'interior' | 'food' | 'team' | 'events'
|
|
order: number
|
|
}
|
|
```
|
|
|
|
## Conventions
|
|
- Slugs URL-friendly pour le SEO
|
|
- Images optimisees WebP avec fallback JPG
|
|
- Validation des donnees avec TypeScript strict
|
|
- Tri par defaut : menu par category + order, reservations par date
|
|
|
|
## Instructions
|
|
- Proposer le meilleur systeme de stockage selon les besoins
|
|
- Assurer la coherence des donnees entre les modeles
|
|
- Prevoir les filtres : categorie, allergenes, disponibilite
|
|
- Optimiser les requetes pour la performance
|
|
- Modeliser les horaires d'ouverture de maniere flexible
|