# Generated by Django 5.2.17 on 2026-09-26 13:47

import django.db.models.deletion
import uuid
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('organization', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='UserOrganizationAssignment',
            fields=[
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('is_primary', models.BooleanField(default=False)),
                ('is_active', models.BooleanField(default=True)),
                ('company', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='user_assignments', to='organization.company')),
                ('department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='user_assignments', to='organization.department')),
                ('region', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='user_assignments', to='organization.region')),
                ('service_center', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='user_assignments', to='organization.servicecenter')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='organization_assignments', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['-created_at', 'id'],
                'constraints': [models.CheckConstraint(condition=models.Q(('is_primary', False), ('is_active', True), _connector='OR'), name='org_assignment_primary_active'), models.CheckConstraint(condition=models.Q(('service_center__isnull', True), ('region__isnull', False), _connector='OR'), name='org_assignment_center_region'), models.UniqueConstraint(condition=models.Q(('is_active', True), ('is_primary', True)), fields=('user',), name='org_assignment_one_primary'), models.UniqueConstraint(condition=models.Q(('is_active', True)), fields=('user', 'company', 'region', 'service_center', 'department'), name='org_assignment_active_scope_uniq', nulls_distinct=False)],
            },
        ),
    ]
