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

generator client {
  provider      = "prisma-client-js"
  binaryTargets = ["linux-musl", "debian-openssl-3.0.x"]
}

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

model Ad {
  uuid           String     @id @default(uuid()) @db.Uuid
  userUuid       String     @db.Uuid
  driver         Boolean
  passenger      Boolean
  frequency      Frequency
  fromDate       DateTime   @db.Date
  toDate         DateTime   @db.Date
  monTime        DateTime?  @db.Timestamptz()
  tueTime        DateTime?  @db.Timestamptz()
  wedTime        DateTime?  @db.Timestamptz()
  thuTime        DateTime?  @db.Timestamptz()
  friTime        DateTime?  @db.Timestamptz()
  satTime        DateTime?  @db.Timestamptz()
  sunTime        DateTime?  @db.Timestamptz()
  monMargin      Int
  tueMargin      Int
  wedMargin      Int
  thuMargin      Int
  friMargin      Int
  satMargin      Int
  sunMargin      Int
  seatsProposed  Int        @db.SmallInt
  seatsRequested Int        @db.SmallInt
  strict         Boolean
  createdAt      DateTime   @default(now())
  updatedAt      DateTime   @default(now()) @updatedAt
  waypoints      Waypoint[]

  @@map("ad")
}

model Waypoint {
  uuid        String   @id @default(uuid()) @db.Uuid
  adUuid      String   @db.Uuid
  position    Int      @db.SmallInt
  lon         Decimal  @db.Decimal(9, 6)
  lat         Decimal  @db.Decimal(8, 6)
  name        String?
  houseNumber String?
  street      String?
  locality    String?
  postalCode  String?
  country     String
  createdAt   DateTime @default(now())
  updatedAt   DateTime @default(now()) @updatedAt
  Ad          Ad       @relation(fields: [adUuid], references: [uuid], onDelete: Cascade)

  @@map("waypoint")
}

enum Frequency {
  PUNCTUAL
  RECURRENT
}