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

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

model User {
  id           Int           @id @default(autoincrement())
  email        String        @unique
  password     String
  role         Role          @default(USER)
  subscription Subscription?
  createdAt    DateTime      @default(now())
  updatedAt    DateTime      @updatedAt
}

model Subscription {
  id               Int      @id @default(autoincrement())
  user             User     @relation(fields: [userId], references: [id])
  userId           Int      @unique
  stripeCustomerId String   @unique
  stripePriceId    String?
  plan             Plan     @default(BASIC)
  status           String   // e.g., "active", "canceled", "past_due"
  currentPeriodEnd DateTime
  createdAt        DateTime @default(now())
  updatedAt        DateTime @updatedAt
}

enum Role {
  USER
  ADMIN
}

enum Plan {
  BASIC
  PRO
  ENTERPRISE
}
