ATC_SIMPLE/BACKEND/app/models/station.ts

83 lines
1.5 KiB
TypeScript

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<typeof Line>
@column.dateTime({ autoCreate: true })
declare createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
declare updatedAt: DateTime
}