# Generated by Django 6.0.4 on 2026-07-30 07:04

import apps.core.models
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('companies', '0012_add_organization_scope'),
        ('core', '0012_userrole_organization_scope'),
    ]

    operations = [
        migrations.CreateModel(
            name='Invitation',
            fields=[
                ('id', models.UUIDField(default=apps.core.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('email', models.EmailField(max_length=254)),
                ('token', models.CharField(default=apps.core.models._invitation_token, editable=False, max_length=64, unique=True)),
                ('status', models.CharField(choices=[('pending', 'Pending'), ('accepted', 'Accepted'), ('revoked', 'Revoked'), ('expired', 'Expired')], db_index=True, default='pending', max_length=10)),
                ('expires_at', models.DateTimeField()),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('accepted_at', models.DateTimeField(blank=True, null=True)),
                ('invited_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
                ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='invitations', to='companies.organization')),
                ('role', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='core.role')),
            ],
            options={
                'db_table': 'invitations',
                'ordering': ['-created_at'],
                'constraints': [models.UniqueConstraint(condition=models.Q(('status', 'pending')), fields=('organization', 'email'), name='unique_pending_invite_per_org_email')],
            },
        ),
    ]
