# Generated by Django 4.2.7 on 2025-09-07 08:41 from django.db import migrations, models import django.db.models.deletion import django.utils.timezone class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Service', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='服务名称')), ('host', models.CharField(max_length=255, verbose_name='主机/IP')), ('port', models.PositiveIntegerField(blank=True, null=True, verbose_name='端口(可选)')), ('check_type', models.CharField(choices=[('ping', 'Ping检测'), ('tcp', 'TCP端口检测'), ('http', 'HTTP请求'), ('custom', '自定义脚本')], default='ping', max_length=50, verbose_name='检测类型')), ('description', models.TextField(blank=True, null=True, verbose_name='描述')), ('is_active', models.BooleanField(default=True, verbose_name='是否启用监控')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), ], options={ 'verbose_name': '服务', 'verbose_name_plural': '服务', }, ), migrations.CreateModel( name='ServiceGroup', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, unique=True, verbose_name='服务分组')), ('description', models.TextField(blank=True, null=True, verbose_name='描述')), ], options={ 'verbose_name': '服务分组', 'verbose_name_plural': '服务分组', }, ), migrations.CreateModel( name='ServiceCheckRecord', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.CharField(choices=[('UP', '正常'), ('DOWN', '故障'), ('UNKNOWN', '未知')], max_length=10, verbose_name='状态')), ('response_time', models.FloatField(blank=True, null=True, verbose_name='响应时间(ms)')), ('message', models.TextField(blank=True, null=True, verbose_name='返回信息/错误原因')), ('checked_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='检测时间')), ('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='records', to='status.service')), ], options={ 'verbose_name': '服务检测记录', 'verbose_name_plural': '服务检测记录', 'ordering': ['-checked_at'], }, ), migrations.AddField( model_name='service', name='group', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='services', to='status.servicegroup', verbose_name='所属分组'), ), ]