# Generated by Django 3.2 on 2021-07-31 20:44

from django.conf import settings
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import shimatta_modules.RandomFileName
import uuid


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='ComponentParameterType',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('parameter_name', models.CharField(max_length=50, unique=True)),
                ('parameter_description', models.TextField(blank=True, null=True)),
                ('unit', models.CharField(max_length=10)),
                ('freetext_parameter', models.BooleanField()),
                ('engineering_unit', models.BooleanField()),
                ('it_unit', models.BooleanField()),
            ],
            options={
                'ordering': ['parameter_name'],
            },
        ),
        migrations.CreateModel(
            name='Distributor',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('name', models.CharField(max_length=100, unique=True)),
                ('website', models.CharField(blank=True, max_length=200, null=True)),
                ('image', models.ImageField(blank=True, null=True, upload_to=shimatta_modules.RandomFileName.RandomFileName('distributor-logos'))),
                ('component_link_pattern', models.CharField(blank=True, max_length=255, null=True)),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Manufacturer',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('name', models.CharField(max_length=100, unique=True)),
                ('website', models.CharField(blank=True, max_length=200, null=True)),
                ('image', models.ImageField(blank=True, null=True, upload_to=shimatta_modules.RandomFileName.RandomFileName('manufacturer-images'))),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Package',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('name', models.CharField(max_length=50, unique=True)),
                ('pin_count', models.PositiveIntegerField()),
                ('smd', models.BooleanField()),
                ('image', models.ImageField(blank=True, null=True, upload_to=shimatta_modules.RandomFileName.RandomFileName('package-images'))),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Storage',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('name', models.CharField(max_length=100, validators=[django.core.validators.RegexValidator('^[^/]*$', 'Slashes are not allowed in storage names')])),
                ('parent_storage', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='parts.storage')),
                ('responsible', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['name'],
                'unique_together': {('name', 'parent_storage')},
            },
        ),
        migrations.CreateModel(
            name='ComponentType',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('class_name', models.CharField(max_length=50, unique=True)),
                ('passive', models.BooleanField()),
                ('possible_parameter', models.ManyToManyField(to='parts.ComponentParameterType')),
            ],
            options={
                'ordering': ['class_name'],
            },
        ),
        migrations.CreateModel(
            name='Component',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('name', models.CharField(max_length=100)),
                ('description', models.TextField(blank=True, null=True)),
                ('datasheet_link', models.CharField(blank=True, max_length=300, null=True)),
                ('image', models.ImageField(blank=True, null=True, upload_to=shimatta_modules.RandomFileName.RandomFileName('component-images'))),
                ('component_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='parts.componenttype')),
                ('manufacturer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='parts.manufacturer')),
                ('package', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='parts.package')),
                ('pref_distri', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='parts.distributor')),
            ],
            options={
                'ordering': ['name', 'manufacturer'],
                'unique_together': {('name', 'manufacturer', 'package')},
            },
        ),
        migrations.CreateModel(
            name='Stock',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('amount', models.PositiveIntegerField()),
                ('watermark', models.IntegerField()),
                ('component', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='parts.component')),
                ('storage', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='parts.storage')),
            ],
            options={
                'ordering': ['id'],
                'unique_together': {('component', 'storage')},
            },
        ),
        migrations.CreateModel(
            name='DistributorNum',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('distributor_part_number', models.CharField(max_length=100)),
                ('component', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parts.component')),
                ('distributor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parts.distributor')),
            ],
            options={
                'ordering': ['distributor_part_number'],
                'unique_together': {('component', 'distributor')},
            },
        ),
        migrations.CreateModel(
            name='ComponentParameter',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('value', models.FloatField()),
                ('text_value', models.TextField(blank=True, null=True)),
                ('component', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parts.component')),
                ('parameter_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parts.componentparametertype')),
            ],
            options={
                'ordering': ['id'],
                'unique_together': {('component', 'parameter_type')},
            },
        ),
    ]
