import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):
    initial = True
    dependencies = [
        ("accounts", "0001_initial"),
    ]
    operations = [
        migrations.CreateModel(
            name="Member",
            fields=[
                ("id", models.BigAutoField(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)),
                ("display_name", models.CharField(max_length=200)),
                ("email", models.EmailField(blank=True, max_length=254)),
                (
                    "workspace",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE, related_name="members", to="accounts.workspace"
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Identity",
            fields=[
                ("id", models.BigAutoField(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)),
                (
                    "provider",
                    models.CharField(
                        choices=[
                            ("slack", "Slack"),
                            ("discord", "Discord"),
                            ("github", "GitHub"),
                            ("discourse", "Discourse"),
                            ("twitter", "Twitter/X"),
                            ("linkedin", "LinkedIn"),
                            ("mastodon", "Mastodon"),
                        ],
                        max_length=50,
                    ),
                ),
                ("external_id", models.CharField(max_length=255)),
                ("handle", models.CharField(max_length=255)),
                (
                    "member",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE, related_name="identities", to="members.member"
                    ),
                ),
            ],
            options={
                "unique_together": {("provider", "external_id")},
            },
        ),
    ]
