"""把 UserDevice.is_active 改名为 is_bound — P1 收尾 IN-005 + CR-001

背景：
    UserDevice.is_active（P1-08 引入，表示"绑定关系有效"软删除标记）与 Device.is_active
    （表示"设备已激活"）命名冲突，select_related('device') 后 ud.device.is_active vs
    ud.is_active 语义截然不同，极易拼错。审查报告 IN-005 与 CR-001 显式建议合并修复。

迁移行为：
    RenameField 在 PostgreSQL 上是元数据级 ALTER TABLE RENAME COLUMN，O(1) 锁，
    不需要数据拷贝；现有 is_active=True 的行经此操作变为 is_bound=True。

注意：
    模型层同步引入 ActiveUserDeviceManager（active manager）+ base_manager_name='objects'
    保证 admin 默认 queryset 不受影响。所有控制权解析调用点必须切到
    `UserDevice.active.filter(...)`（详见审查报告 CR-001）。
"""

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('device_interaction', '0003_userdevice_affinity_level_userdevice_favorability_and_more'),
    ]

    operations = [
        migrations.RenameField(
            model_name='userdevice',
            old_name='is_active',
            new_name='is_bound',
        ),
        migrations.AlterField(
            model_name='userdevice',
            name='is_bound',
            field=models.BooleanField(
                default=True,
                help_text='软删除标记。解绑置为 false，重绑时可读取历史值。'
                          '原名 is_active（P1-08 引入），因与 Device.is_active'
                          '（设备激活态）命名冲突，于 P1 收尾改名为 is_bound。',
                verbose_name='绑定有效',
            ),
        ),
    ]
