121 lines
7.9 KiB
Python
121 lines
7.9 KiB
Python
# Generated by Django 5.2.14 on 2026-05-18 09:21
|
|
|
|
import device_management.models
|
|
import django.db.models.deletion
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Device',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('location', models.CharField(max_length=100, verbose_name='地点')),
|
|
('building', models.CharField(blank=True, max_length=50, null=True, verbose_name='楼栋')),
|
|
('floor', models.CharField(blank=True, max_length=20, null=True, verbose_name='楼层')),
|
|
('cabinet', models.CharField(blank=True, max_length=50, null=True, verbose_name='机柜')),
|
|
('device_name', models.CharField(max_length=100, verbose_name='设备名称')),
|
|
('model', models.CharField(blank=True, max_length=100, null=True, verbose_name='型号')),
|
|
('brand', models.CharField(blank=True, max_length=100, null=True, verbose_name='品牌')),
|
|
('mac_address', models.CharField(blank=True, max_length=17, null=True, verbose_name='MAC地址')),
|
|
('enable_date', models.DateField(blank=True, null=True, verbose_name='启用日期')),
|
|
('last_inspection_date', models.DateField(blank=True, null=True, verbose_name='最后巡检日期')),
|
|
('thumbnail', models.ImageField(blank=True, null=True, upload_to=device_management.models.device_thumbnail_path, verbose_name='缩略图')),
|
|
('status', models.CharField(choices=[('normal', '正常'), ('warning', '告警'), ('offline', '离线'), ('repair', '维修中'), ('scrap', '已报废')], default='normal', max_length=20, verbose_name='状态')),
|
|
('responsible_person', models.CharField(blank=True, max_length=50, null=True, verbose_name='负责人')),
|
|
('warranty_expire', models.DateField(blank=True, null=True, verbose_name='保修到期日期')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
|
],
|
|
options={
|
|
'verbose_name': '设备',
|
|
'verbose_name_plural': '设备',
|
|
'db_table': 'device',
|
|
'indexes': [models.Index(fields=['location', 'building'], name='device_locatio_6a4f0a_idx'), models.Index(fields=['status'], name='device_status_6321a6_idx')],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='DeviceAttachment',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('file', models.FileField(upload_to=device_management.models.device_attachment_path, verbose_name='文件')),
|
|
('file_name', models.CharField(max_length=255, verbose_name='文件名')),
|
|
('file_type', models.CharField(blank=True, max_length=50, null=True, verbose_name='文件类型')),
|
|
('uploaded_at', models.DateTimeField(auto_now_add=True, verbose_name='上传时间')),
|
|
('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attachments', to='device_management.device', verbose_name='设备')),
|
|
],
|
|
options={
|
|
'verbose_name': '设备附件',
|
|
'verbose_name_plural': '设备附件',
|
|
'db_table': 'device_attachment',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='DeviceIP',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('ip_address', models.CharField(max_length=45, unique=True, verbose_name='IP地址')),
|
|
('ip_type', models.CharField(default='management', max_length=20, verbose_name='IP类型')),
|
|
('is_primary', models.BooleanField(default=False, verbose_name='是否主IP')),
|
|
('subnet_mask', models.CharField(blank=True, max_length=15, null=True, verbose_name='子网掩码')),
|
|
('gateway', models.CharField(blank=True, max_length=45, null=True, verbose_name='网关')),
|
|
('vlan_id', models.CharField(blank=True, max_length=10, null=True, verbose_name='VLAN ID')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
|
('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ips', to='device_management.device', verbose_name='设备')),
|
|
],
|
|
options={
|
|
'verbose_name': '设备IP地址',
|
|
'verbose_name_plural': '设备IP地址',
|
|
'db_table': 'device_ip',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='DeviceSerial',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('serial_number', models.CharField(max_length=100, unique=True, verbose_name='序列号')),
|
|
('serial_type', models.CharField(default='main', max_length=50, verbose_name='序列号类型')),
|
|
('is_primary', models.BooleanField(default=False, verbose_name='是否主序列号')),
|
|
('remark', models.CharField(blank=True, max_length=255, null=True, verbose_name='备注')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
|
('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='serials', to='device_management.device', verbose_name='设备')),
|
|
],
|
|
options={
|
|
'verbose_name': '设备序列号',
|
|
'verbose_name_plural': '设备序列号',
|
|
'db_table': 'device_serial',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='MaintenanceRecord',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('maintenance_date', models.DateField(verbose_name='维修日期')),
|
|
('fault_description', models.TextField(blank=True, null=True, verbose_name='故障描述')),
|
|
('repair_content', models.TextField(blank=True, null=True, verbose_name='维修内容')),
|
|
('replaced_parts', models.CharField(blank=True, max_length=255, null=True, verbose_name='更换配件')),
|
|
('maintenance_by', models.CharField(blank=True, max_length=50, null=True, verbose_name='维修人')),
|
|
('cost', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='费用')),
|
|
('remark', models.TextField(blank=True, null=True, verbose_name='备注')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
|
('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='maintenance_records', to='device_management.device', verbose_name='设备')),
|
|
],
|
|
options={
|
|
'verbose_name': '维修记录',
|
|
'verbose_name_plural': '维修记录',
|
|
'db_table': 'maintenance_record',
|
|
'ordering': ['-maintenance_date'],
|
|
},
|
|
),
|
|
]
|