generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

model User {
  id               String    @id @default(uuid())
  email            String    @unique
  password         String?   // Optionnel pour les utilisateurs Google
  name             String
  googleId         String?   @unique
  stripeId         String?   @unique // Optionnel : Stripe peut être désactivé
  subscription     String?
  resetToken       String?
  resetTokenExpiry DateTime?

  // Préférences culinaires injectées dans le prompt IA
  dietaryPreference String?  // 'vegetarian' | 'vegan' | 'pescatarian' | 'none'
  allergies         String?  // Liste séparée par des virgules : "arachides,gluten"
  maxCookingTime    Int?     // Temps total max (prépa + cuisson) en minutes
  equipment         String?  // JSON array : '["four","plaque","micro-ondes"]'
  cuisinePreference String?  // "française", "italienne", "asiatique"... ou null
  servingsDefault   Int?     // Nombre de portions par défaut

  createdAt        DateTime  @default(now())
  updatedAt        DateTime  @updatedAt
  recipes          Recipe[]
}

model Recipe {
  id              String   @id @default(uuid())
  title           String
  ingredients     String
  userPrompt      String
  generatedRecipe String
  audioUrl        String?
  imageUrl        String?
  preparationTime Int?
  cookingTime     Int?
  servings        Int?
  difficulty      String?
  steps           String?
  tips            String?
  userId          String
  user            User     @relation(fields: [userId], references: [id])
  createdAt       DateTime @default(now())
  updatedAt       DateTime @updatedAt
}