83 lines
1.5 KiB
TypeScript
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
|
|
}
|