// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init

generator client {
  provider = "prisma-client"

  runtime                = "workerd"
  moduleFormat           = "esm"
  generatedFileExtension = "ts"
  importFileExtension    = "ts"

  output          = "../generated/prisma"
  previewFeatures = ["queryCompiler", "driverAdapters"]
}

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

model User {
  id          String      @id @default(uuid()) // User ID (UUID-based)
  username    String      @unique
  createdAt   DateTime    @default(now())

  credentials Credential[] // Relationship: One user can have many credentials
}

model Credential {
  id            String   @id @default(uuid()) // Internal DB ID
  userId        String   @unique // Every credential is linked to a specific user
  user          User     @relation(fields: [userId], references: [id])
  createdAt     DateTime @default(now())
  credentialId  String   @unique // WebAuthn credential identifier
  publicKey     Bytes
  counter       Int      @default(0)
  
  @@index([credentialId])
  @@index([userId])
}