aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/migrations/0093_user_alts.py
blob: db6807b4795ffa0bf2c6710c51b30b775502683e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Generated by Django 5.0 on 2023-12-14 13:14

import django.db.models.deletion
import pydis_site.apps.api.models.mixins
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('api', '0092_remove_redirect_filter_list'),
    ]

    operations = [
        migrations.CreateModel(
            name='UserAltRelationship',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('context', models.TextField(help_text='The reason for why this account was associated as an alt.', max_length=1900)),
                ('actor', models.ForeignKey(help_text='The moderator that associated these accounts together.', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='api.user')),
                ('source', models.ForeignKey(help_text='The source of this user to alternate account relationship', on_delete=django.db.models.deletion.CASCADE, to='api.user', verbose_name='Source')),
                ('target', models.ForeignKey(help_text='The target of this user to alternate account relationship', on_delete=django.db.models.deletion.CASCADE, related_name='+', to='api.user', verbose_name='Target')),
            ],
            bases=(pydis_site.apps.api.models.mixins.ModelReprMixin, models.Model),
        ),
        migrations.AddField(
            model_name='user',
            name='alts',
            field=models.ManyToManyField(help_text='Known alternate accounts of this user. Manually linked.', through='api.UserAltRelationship', to='api.user', verbose_name='Alternative accounts'),
        ),
        migrations.AddConstraint(
            model_name='useraltrelationship',
            constraint=models.UniqueConstraint(fields=('source', 'target'), name='api_useraltrelationship_unique_relationships'),
        ),
        migrations.AddConstraint(
            model_name='useraltrelationship',
            constraint=models.CheckConstraint(condition=models.Q(('source', models.F('target')), _negated=True), name='api_useraltrelationship_prevent_alt_to_self'),
        ),
    ]