import { DateTime } from 'luxon' import { BaseModel, column, hasMany, SnakeCaseNamingStrategy } from '@adonisjs/lucid/orm' import type { HasMany } from '@adonisjs/lucid/types/relations' import Line from './line.js' BaseModel.namingStrategy = new SnakeCaseNamingStrategy() export default class Station extends BaseModel { @column({ isPrimary: true }) declare id: number @column() declare name: string @column() declare ip: string @column() declare netmask?: string @column() declare network?: string @column() declare gateway?: string @column() declare tftp_ip?: string @column() declare apc_1_ip?: string @column() declare apc_2_ip?: string @column() declare port: number @column() declare apc_1_port?: number @column() declare apc_2_port?: number @column() declare apc_1_username?: string @column() declare apc_1_password?: string @column() declare apc_2_username?: string @column() declare apc_2_password?: string @column() declare master_control: boolean @column() declare switch_control_ip?: string @column() declare switch_control_port?: number @column() declare switch_control_username?: string @column() declare switch_control_password?: string @hasMany(() => Line, { foreignKey: 'stationId', }) declare lines: HasMany @column.dateTime({ autoCreate: true }) declare createdAt: DateTime @column.dateTime({ autoCreate: true, autoUpdate: true }) declare updatedAt: DateTime }