import type { MigrationLiveDefinition } from '@d8d-appcontainer/types' import { DeleteStatus } from "../../client/share/types.ts"; import { IsSpare, DisabledStatus } from "../../client/share/monitorTypes.ts"; // 定义资产表迁移 const createZichanInfoTable: MigrationLiveDefinition = { name: "create_zichan_info_table", up: async (api) => { await api.schema.createTable('zichan_info', (table) => { table.increments('id').primary(); table.string('asset_name').comment('资产名称'); table.integer('device_category').unsigned().references('id').inTable('zichan_category').onDelete('CASCADE').comment('设备分类'); table.integer('area').unsigned().references('id').inTable('zichan_area').onDelete('CASCADE').comment('归属区域'); table.string('supplier').comment('供应商'); table.string('use_address').comment('使用地址'); table.string('operation_status').comment('运行情况'); table.integer('is_audited').defaultTo(0).comment('是否审核 (0否 1是)'); table.integer('audit_status').comment('审核状态'); table.integer('asset_status').comment('资产状态'); table.integer('stock_quantity').comment('入库数量'); table.timestamp('warranty_time').comment('质保时间'); table.string('brand').comment('品牌'); table.integer('device_status').comment('设备状态'); table.integer('network_status').comment('网络状态'); table.integer('packet_loss').comment('丢包率'); table.text('images').comment('图片'); table.integer('is_spare').defaultTo(IsSpare.NO).comment('是否备件 (0否 1是)'); table.integer('is_disabled').defaultTo(DisabledStatus.ENABLED).comment('是否被禁用 (0否 1是)'); table.integer('is_deleted').defaultTo(DeleteStatus.NOT_DELETED).comment('是否被删除 (0否 1是)'); table.decimal('longitude', 10, 6).comment('资产位置经度'); table.decimal('latitude', 10, 6).comment('资产位置纬度'); table.string('cpu').comment('CPU信息'); table.string('memory').comment('内存信息'); table.string('disk').comment('硬盘信息'); table.timestamps(true, true); // 添加索引 table.index('asset_name'); table.index('device_category'); table.index('device_status'); table.index('area'); table.index('network_status'); table.index('is_deleted'); table.index('is_disabled'); }); }, down: async (api) => { await api.schema.dropTable('zichan_info'); } }; export default createZichanInfoTable;