# Generated by Django 5.2.6 on 2026-01-23 16:25

import django.db.models.deletion
import horilla.models
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('base', '0002_initial'),
        ('employee', '0001_initial'),
        ('pms', '0001_initial'),
        ('recruitment', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='GoogleCredential',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Created At')),
                ('is_active', models.BooleanField(default=True, verbose_name='Is Active')),
                ('token', models.TextField()),
                ('refresh_token', models.TextField()),
                ('token_uri', models.CharField(max_length=255)),
                ('client_id', models.CharField(max_length=255)),
                ('client_secret', models.CharField(max_length=255)),
                ('scopes', models.TextField()),
                ('expires_at', models.DateTimeField()),
                ('created_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Created By')),
                ('employee_id', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='google_credential', to='employee.employee')),
                ('modified_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_modified_by', to=settings.AUTH_USER_MODEL, verbose_name='Modified By')),
            ],
            options={
                'abstract': False,
            },
            bases=(models.Model, horilla.models.NoPermissionModel),
        ),
        migrations.CreateModel(
            name='GoogleMeeting',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created_at', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Created At')),
                ('is_active', models.BooleanField(default=True, verbose_name='Is Active')),
                ('title', models.CharField(max_length=200)),
                ('description', models.TextField()),
                ('start_time', models.DateTimeField()),
                ('meet_url', models.URLField()),
                ('event_id', models.CharField(max_length=255, null=True)),
                ('duration', models.PositiveIntegerField(default=60, help_text='Duration in minutes')),
                ('attendees', models.JSONField(blank=True, default=list, null=True)),
                ('created_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Created By')),
                ('employee_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='meetings', to='employee.employee')),
                ('modified_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_modified_by', to=settings.AUTH_USER_MODEL, verbose_name='Modified By')),
            ],
            options={
                'ordering': ['-start_time'],
            },
        ),
        migrations.CreateModel(
            name='InterviewMeetingLink',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('interview', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='google_interviews', to='recruitment.interviewschedule')),
                ('meeting', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='horilla_meet.googlemeeting')),
            ],
            bases=(models.Model, horilla.models.NoPermissionModel),
        ),
        migrations.CreateModel(
            name='PmsMeetingLink',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('google_meeting', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='horilla_meet.googlemeeting')),
                ('meeting', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='google_meeting', to='pms.meetings')),
            ],
            bases=(models.Model, horilla.models.NoPermissionModel),
        ),
        migrations.CreateModel(
            name='GoogleCloudCredential',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('project_id', models.CharField(blank=True, max_length=255, null=True)),
                ('client_id', models.CharField(max_length=255)),
                ('client_secret', models.CharField(max_length=255)),
                ('redirect_uris', models.TextField(help_text='Comma separated URIs')),
                ('company_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='base.company', verbose_name='Company')),
            ],
            options={
                'verbose_name': 'Google Cloud Credential',
                'verbose_name_plural': 'Google Cloud Credentials',
                'unique_together': {('project_id', 'company_id')},
            },
        ),
        migrations.AddIndex(
            model_name='googlemeeting',
            index=models.Index(fields=['employee_id', 'start_time'], name='horilla_mee_employe_32e027_idx'),
        ),
        migrations.AddIndex(
            model_name='googlemeeting',
            index=models.Index(fields=['event_id'], name='horilla_mee_event_i_4a80d4_idx'),
        ),
    ]
