/**
 * This file is automatically generated
 * DO NOT EDIT manually
 * Run "node ace migration:run" command to re-generate this file
 */

import { BaseModel, column } from '@adonisjs/lucid/orm'
import { DateTime } from 'luxon'

export class AuthAccessTokenSchema extends BaseModel {
  static $columns = ['abilities', 'createdAt', 'expiresAt', 'hash', 'id', 'lastUsedAt', 'name', 'tokenableId', 'type', 'updatedAt'] as const
  $columns = AuthAccessTokenSchema.$columns
  @column()
  declare abilities: string
  @column.dateTime({ autoCreate: true })
  declare createdAt: DateTime | null
  @column.dateTime()
  declare expiresAt: DateTime | null
  @column()
  declare hash: string
  @column({ isPrimary: true })
  declare id: number
  @column.dateTime()
  declare lastUsedAt: DateTime | null
  @column()
  declare name: string | null
  @column()
  declare tokenableId: number
  @column()
  declare type: string
  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updatedAt: DateTime | null
}

export class CategorySchema extends BaseModel {
  static $columns = ['createdAt', 'id', 'name', 'nameEn', 'nameHu', 'slug', 'updatedAt'] as const
  $columns = CategorySchema.$columns
  @column.dateTime({ autoCreate: true })
  declare createdAt: DateTime
  @column({ isPrimary: true })
  declare id: number
  @column()
  declare name: string
  @column()
  declare nameEn: string | null
  @column()
  declare nameHu: string | null
  @column()
  declare slug: string
  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updatedAt: DateTime
}

export class ImageSchema extends BaseModel {
  static $columns = ['createdAt', 'description', 'filePath', 'id', 'isVisible', 'updatedAt'] as const
  $columns = ImageSchema.$columns
  @column.dateTime({ autoCreate: true })
  declare createdAt: DateTime | null
  @column()
  declare description: string | null
  @column()
  declare filePath: string
  @column({ isPrimary: true })
  declare id: number
  @column()
  declare isVisible: boolean | null
  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updatedAt: DateTime | null
}

export class MenuItemMenuSchema extends BaseModel {
  static $columns = ['id', 'restaurantMenuId', 'restaurantMenuItemId'] as const
  $columns = MenuItemMenuSchema.$columns
  @column({ isPrimary: true })
  declare id: number
  @column()
  declare restaurantMenuId: number
  @column()
  declare restaurantMenuItemId: number
}

export class RateLimitSchema extends BaseModel {
  static $columns = ['expire', 'key', 'points'] as const
  $columns = RateLimitSchema.$columns
  @column()
  declare expire: bigint | number | null
  @column({ isPrimary: true })
  declare key: string
  @column()
  declare points: number
}

export class ReservationSchema extends BaseModel {
  static $columns = ['createdAt', 'customerName', 'customerPhone', 'endsAt', 'guestsCount', 'id', 'notes', 'roomId', 'startsAt', 'status', 'updatedAt'] as const
  $columns = ReservationSchema.$columns
  @column.dateTime({ autoCreate: true })
  declare createdAt: DateTime | null
  @column()
  declare customerName: string
  @column()
  declare customerPhone: string
  @column.dateTime()
  declare endsAt: DateTime
  @column()
  declare guestsCount: number
  @column({ isPrimary: true })
  declare id: number
  @column()
  declare notes: string | null
  @column()
  declare roomId: number | null
  @column.dateTime()
  declare startsAt: DateTime
  @column()
  declare status: string | null
  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updatedAt: DateTime | null
}

export class RestaurantMenuItemSchema extends BaseModel {
  static $columns = ['categoryId', 'createdAt', 'description', 'descriptionEn', 'descriptionHu', 'id', 'name', 'nameEn', 'nameHu', 'priceLarge', 'priceSmall', 'updatedAt'] as const
  $columns = RestaurantMenuItemSchema.$columns
  @column()
  declare categoryId: number | null
  @column.dateTime({ autoCreate: true })
  declare createdAt: DateTime
  @column()
  declare description: string | null
  @column()
  declare descriptionEn: string | null
  @column()
  declare descriptionHu: string | null
  @column({ isPrimary: true })
  declare id: number
  @column()
  declare name: string
  @column()
  declare nameEn: string | null
  @column()
  declare nameHu: string | null
  @column()
  declare priceLarge: string
  @column()
  declare priceSmall: string
  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updatedAt: DateTime
}

export class RestaurantMenuSchema extends BaseModel {
  static $columns = ['createdAt', 'id', 'name', 'nameEn', 'nameHu', 'updatedAt'] as const
  $columns = RestaurantMenuSchema.$columns
  @column.dateTime({ autoCreate: true })
  declare createdAt: DateTime
  @column({ isPrimary: true })
  declare id: number
  @column()
  declare name: string
  @column()
  declare nameEn: string | null
  @column()
  declare nameHu: string | null
  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updatedAt: DateTime
}

export class RoomSchema extends BaseModel {
  static $columns = ['capacity', 'createdAt', 'description', 'id', 'name', 'updatedAt'] as const
  $columns = RoomSchema.$columns
  @column()
  declare capacity: number
  @column.dateTime({ autoCreate: true })
  declare createdAt: DateTime | null
  @column()
  declare description: string | null
  @column({ isPrimary: true })
  declare id: number
  @column()
  declare name: string
  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updatedAt: DateTime | null
}

export class UserSchema extends BaseModel {
  static $columns = ['createdAt', 'email', 'fullName', 'id', 'password', 'role', 'updatedAt'] as const
  $columns = UserSchema.$columns
  @column.dateTime({ autoCreate: true })
  declare createdAt: DateTime
  @column()
  declare email: string
  @column()
  declare fullName: string
  @column({ isPrimary: true })
  declare id: number
  @column({ serializeAs: null })
  declare password: string
  @column()
  declare role: string
  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updatedAt: DateTime
}
