# Generated by Django 4.1.7 on 2023-03-02 07:14

# 导入 Django 迁移系统所需的核心模块
# migrations: 用于定义数据库模式变更
# models: 用于定义模型字段类型
from django.db import migrations, models
# 导入 Django 的时区工具，用于提供默认时间
import django.utils.timezone


# 定义一个 Django 数据库迁移类
# 该类继承自 migrations.Migration，由 Django 自动生成，用于描述对数据库模式的变更
class Migration(migrations.Migration):
    # 标记此迁移为应用的初始迁移（initial migration）
    # 当应用首次被迁移时，Django 会识别并执行此迁移
    initial = True

    # 定义此迁移所依赖的其他迁移
    # 由于这是初始迁移且没有依赖其他应用的模型，因此为空列表
    # 如果模型外键关联了其他应用的模型，则需要在此列出对应的迁移
    dependencies = [
    ]

    # 定义此迁移要执行的具体数据库操作列表
    # 每个操作是一个 Migration 操作类的实例，如 CreateModel、AddField 等
    operations = [
        # 创建一个名为 'OwnTrackLog' 的新数据库模型（对应一张数据表）
        migrations.CreateModel(
            # 指定要创建的模型名称
            name='OwnTrackLog',
            # 定义该模型包含的数据库字段
            # 每个字段由字段名和字段类型及参数组成
            fields=[
                # 主键字段 'id'：自增的 BigAutoField（64位整数）
                # auto_created=True: 表示是 Django 自动创建的主键
                # primary_key=True: 指定为主键
                # serialize=False: 在序列化（如 dumpdata）时是否包含此字段
                # verbose_name='ID': 在管理后台等界面显示的可读名称
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),

                # 'tid' 字段：存储用户或设备标识，使用 CharField
                # max_length=100: 最大长度为100个字符
                # verbose_name='用户': 在界面中显示为“用户”
                ('tid', models.CharField(max_length=100, verbose_name='用户')),

                # 'lat' 字段：存储纬度值，使用 FloatField（浮点数）
                # verbose_name='纬度': 在界面中显示为“纬度”
                ('lat', models.FloatField(verbose_name='纬度')),

                # 'lon' 字段：存储经度值，使用 FloatField（浮点数）
                # verbose_name='经度': 在界面中显示为“经度”
                ('lon', models.FloatField(verbose_name='经度')),

                # 'created_time' 字段：记录创建时间，使用 DateTimeField
                # default=django.utils.timezone.now: 默认值为当前时间（注意：传入函数引用，非调用结果）
                # verbose_name='创建时间': 在界面中显示为“创建时间”
                ('created_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='创建时间')),
            ],
            # 定义该模型的元数据选项（对应模型内部的 Meta 类）
            options={
                # verbose_name: 模型在管理后台的单数可读名称
                'verbose_name': 'OwnTrackLogs',

                # verbose_name_plural: 模型在管理后台的复数可读名称
                # 此处与单数名称相同
                'verbose_name_plural': 'OwnTrackLogs',

                # ordering: 查询该模型时的默认排序字段
                # 按 'created_time' 升序排列
                'ordering': ['created_time'],

                # get_latest_by: 指定用于获取最新记录的字段
                # 调用 latest() 方法时会基于此字段排序
                'get_latest_by': 'created_time',
            },
        ),
    ]