datasource db {
    provider = "sqlite"
    url      = "file:./data.db"
}

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

model Group {
    id      String  @id @default(uuid())
    name    String  @unique
    slug    String  @unique
    tokens  Int     @default(0)

    unlocks Entry[]
}

model Agent {
    id           String  @id @default(uuid())
    uid          String?  @unique
    slug         String?  @unique
    name         String?

    password     String @default(uuid()) @unique

    catchable    Boolean @default(true)

    tokenCode    TokenCode?   @relation(fields: [tokenCodeId], references: [id])
    tokenCodeId  String?

    entries      Entry[]
}

model TokenCode {
    id          String  @id @default(uuid())
    value       Int     @default(1)

    agent       Agent?
}

model Entry {
    id      String  @id @default(uuid())

    private Boolean

    content String?
    image   String?
    lat     String?
    lon     String?

    createdAt DateTime @default(now())

    agent   Agent   @relation(fields: [agentId], references: [id])
    agentId String

    unlockedBy  Group[]
}