# Generated by Django 5.2.1 on 2025-06-05 08:18

import django.core.validators
import django.db.models.deletion
import taggit.managers
import utilities.json
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('extras', '0128_tableconfig'),
        ('netbox_aci', '0001_initial'),
    ]

    operations = [
        migrations.AddField(
            model_name='policygroup',
            name='type',
            field=models.CharField(null=True),
        ),
        migrations.CreateModel(
            name='CDP',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
                ('created', models.DateTimeField(auto_now_add=True, null=True)),
                ('last_updated', models.DateTimeField(auto_now=True, null=True)),
                ('custom_field_data', models.JSONField(blank=True, default=dict, encoder=utilities.json.CustomFieldJSONEncoder)),
                ('slug', models.SlugField(max_length=100, null=True, unique=True)),
                ('description', models.CharField(blank=True, max_length=100)),
                ('comments', models.TextField(blank=True)),
                ('name', models.CharField(max_length=100, unique=True, validators=[django.core.validators.RegexValidator('^[a-zA-Z0-9-_]+$', 'Only alphanumeric, hyphens, and underscores are allowed.')])),
                ('admin_state', models.CharField(default='disabled')),
                ('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
            ],
            options={
                'verbose_name': 'CDP Policy',
                'verbose_name_plural': 'CDP Policies',
                'ordering': ['name'],
            },
        ),
        migrations.AddField(
            model_name='policygroup',
            name='cdp',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='ipg_cdp', to='netbox_aci.cdp'),
        ),
        migrations.CreateModel(
            name='LLDP',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
                ('created', models.DateTimeField(auto_now_add=True, null=True)),
                ('last_updated', models.DateTimeField(auto_now=True, null=True)),
                ('custom_field_data', models.JSONField(blank=True, default=dict, encoder=utilities.json.CustomFieldJSONEncoder)),
                ('slug', models.SlugField(max_length=100, null=True, unique=True)),
                ('description', models.CharField(blank=True, max_length=100)),
                ('comments', models.TextField(blank=True)),
                ('name', models.CharField(max_length=100, unique=True, validators=[django.core.validators.RegexValidator('^[a-zA-Z0-9-_]+$', 'Only alphanumeric, hyphens, and underscores are allowed.')])),
                ('receive_state', models.CharField(default='disabled')),
                ('transmit_state', models.CharField(default='disabled')),
                ('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
            ],
            options={
                'verbose_name': 'LLDP Policy',
                'verbose_name_plural': 'LLDP Policies',
                'ordering': ['name'],
            },
        ),
        migrations.AddField(
            model_name='policygroup',
            name='lldp',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='ipg_lldp', to='netbox_aci.lldp'),
        ),
        migrations.CreateModel(
            name='PortChannel',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
                ('created', models.DateTimeField(auto_now_add=True, null=True)),
                ('last_updated', models.DateTimeField(auto_now=True, null=True)),
                ('custom_field_data', models.JSONField(blank=True, default=dict, encoder=utilities.json.CustomFieldJSONEncoder)),
                ('slug', models.SlugField(max_length=100, null=True, unique=True)),
                ('description', models.CharField(blank=True, max_length=100)),
                ('comments', models.TextField(blank=True)),
                ('name', models.CharField(max_length=100, unique=True, validators=[django.core.validators.RegexValidator('^[a-zA-Z0-9-_]+$', 'Only alphanumeric, hyphens, and underscores are allowed.')])),
                ('mode', models.CharField(default='staticchannel')),
                ('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
            ],
            options={
                'verbose_name': 'PortChannel Policy',
                'verbose_name_plural': 'PortChannel Policies',
                'ordering': ['name'],
            },
        ),
        migrations.AddField(
            model_name='policygroup',
            name='portchannel',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='ipg_portchannel', to='netbox_aci.portchannel'),
        ),
    ]
