Initial commit: 视频主设备管理系统 - 完整DRF后端项目
This commit is contained in:
120
device_management/migrations/0001_initial.py
Normal file
120
device_management/migrations/0001_initial.py
Normal file
@@ -0,0 +1,120 @@
|
||||
# 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'],
|
||||
},
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user