# Generated by Django 4.2 on 2024-01-13 02:02

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('core', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Channel',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='UUID')),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Created at')),
                ('updated_at', models.DateTimeField(auto_now=True, null=True, verbose_name='Updated at')),
                ('channel_number', models.PositiveIntegerField(help_text='Auto-incremented Channel Number', unique=True)),
                ('name', models.CharField(help_text='Name of the TV Channel', max_length=200, unique=True)),
                ('description', models.TextField(blank=True, help_text='Description of the TV Channel', null=True)),
                ('logo', models.ImageField(blank=True, default='channels/default_logo.png', help_text='Logo of the TV Channel', null=True, upload_to=apps.channels.models.channels_logo_upload_path)),
                ('owner', models.CharField(blank=True, help_text='Owner or Broadcasting Company of the TV Channel', max_length=200, null=True)),
                ('launch_date', models.DateField(help_text='Date when the TV Channel was launched')),
                ('website', models.URLField(blank=True, help_text='Official Website URL of the TV Channel', null=True)),
                ('headquarters_location', models.CharField(blank=True, help_text="Location of the TV Channel's Headquarters", max_length=200, null=True)),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_created', to=settings.AUTH_USER_MODEL, verbose_name='Created by')),
            ],
            options={
                'verbose_name': 'Channel',
                'verbose_name_plural': 'Channels',
                'ordering': ['channel_number'],
            },
        ),
        migrations.CreateModel(
            name='Network',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='UUID')),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Created at')),
                ('updated_at', models.DateTimeField(auto_now=True, null=True, verbose_name='Updated at')),
                ('name', models.CharField(help_text='Name of the TV Network', max_length=200, unique=True)),
                ('description', models.TextField(blank=True, help_text='Description of the TV Network', null=True)),
                ('logo', models.ImageField(blank=True, default='networks/default_logo.png', help_text='Logo of the TV Network', null=True, upload_to=apps.channels.models.networks_logo_upload_path)),
                ('channel_name', models.CharField(help_text='Name of the TV Network', max_length=200, unique=True)),
                ('channel_number', models.PositiveIntegerField(help_text='Channel Number associated with this Network', unique=True)),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_created', to=settings.AUTH_USER_MODEL, verbose_name='Created by')),
                ('updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_updated', to=settings.AUTH_USER_MODEL, verbose_name='Updated by')),
            ],
            options={
                'verbose_name': 'Network',
                'verbose_name_plural': 'Networks',
            },
        ),
        migrations.CreateModel(
            name='Jingle',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='UUID')),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Created at')),
                ('updated_at', models.DateTimeField(auto_now=True, null=True, verbose_name='Updated at')),
                ('title', models.CharField(help_text='Title or name of the jingle.', max_length=200)),
                ('description', models.TextField(blank=True, help_text='Description or details about the jingle.', null=True)),
                ('status', models.CharField(choices=[('Active', 'Active'), ('Inactive', 'Inactive'), ('Pending', 'Pending')], default='Pending', help_text='Status of the jingle (e.g., Active, Inactive, Pending).', max_length=10)),
                ('video_file', models.FileField(help_text='Upload the jingle video file.', upload_to='jingles/video/')),
                ('md5_file', models.FileField(help_text='Upload the MD5 file for the jingle.', upload_to='jingles/md5/')),
                ('channel', models.ForeignKey(help_text='Reference to the associated TV Channel.', on_delete=django.db.models.deletion.CASCADE, related_name='channel_jingles', to='channels.channel')),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_created', to=settings.AUTH_USER_MODEL, verbose_name='Created by')),
                ('updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_updated', to=settings.AUTH_USER_MODEL, verbose_name='Updated by')),
            ],
            options={
                'verbose_name': 'Jingle',
                'verbose_name_plural': 'Jingles',
            },
        ),
        migrations.CreateModel(
            name='Genre',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='UUID')),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Created at')),
                ('updated_at', models.DateTimeField(auto_now=True, null=True, verbose_name='Updated at')),
                ('name', models.CharField(help_text='Name of the Genre', max_length=100, unique=True)),
                ('description', models.TextField(blank=True, help_text='Description of the Genre', null=True)),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_created', to=settings.AUTH_USER_MODEL, verbose_name='Created by')),
                ('updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_updated', to=settings.AUTH_USER_MODEL, verbose_name='Updated by')),
            ],
            options={
                'verbose_name': 'Genre',
                'verbose_name_plural': 'Genres',
            },
        ),
        migrations.CreateModel(
            name='ChannelsZone',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='UUID')),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Created at')),
                ('updated_at', models.DateTimeField(auto_now=True, null=True, verbose_name='Updated at')),
                ('region', models.CharField(blank=True, help_text='Region name associated with the zone.', max_length=255, null=True)),
                ('zonename', models.CharField(blank=True, help_text='Name of the specific zone.', max_length=255, null=True)),
                ('channel', models.ForeignKey(blank=True, db_column='channel', help_text='Reference to the associated TV Channel.', null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='channels.channel')),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_created', to=settings.AUTH_USER_MODEL, verbose_name='Created by')),
                ('updated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_updated', to=settings.AUTH_USER_MODEL, verbose_name='Updated by')),
            ],
            options={
                'verbose_name': 'Channels Zone',
                'verbose_name_plural': 'Channels Zones',
            },
        ),
        migrations.AddField(
            model_name='channel',
            name='genres',
            field=models.ManyToManyField(help_text='Genres associated with the TV Channel', related_name='channels', to='channels.genre'),
        ),
        migrations.AddField(
            model_name='channel',
            name='languages',
            field=models.ManyToManyField(help_text='Languages associated with the TV Channel', related_name='channels', to='core.language'),
        ),
        migrations.AddField(
            model_name='channel',
            name='networks',
            field=models.ManyToManyField(help_text='Networks associated with the TV Channel', related_name='channels', to='channels.network'),
        ),
        migrations.AddField(
            model_name='channel',
            name='updated_by',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_updated', to=settings.AUTH_USER_MODEL, verbose_name='Updated by'),
        ),
    ]
