production-taskbar / backend / helpdesk / migrations / 0001_initial.py
0001_initial.py
Raw
# Generated by Django 3.2.8 on 2021-10-29 13:04

import colorfield.fields
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('taskbar', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='CategoriesSet',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20, unique=True)),
            ],
            options={
                'verbose_name_plural': '3. Набори категорій',
            },
        ),
        migrations.CreateModel(
            name='Problem',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=40, unique=True)),
                ('label', models.CharField(blank=True, help_text='If not empty used as name in frontend', max_length=40)),
                ('require_scan', models.BooleanField(default=True, help_text='Користувач має просканувати бейдж для відправлення зголошення.')),
                ('add_mao_boards', models.BooleanField(default=False, help_text='Додати інформацію про дошки з МАО для цього р.м.')),
                ('add_winkhmman_path', models.BooleanField(default=False, help_text='Додати WinKHMMan.exe шлях в зголошення')),
            ],
            options={
                'verbose_name_plural': '5. Проблеми',
            },
        ),
        migrations.CreateModel(
            name='Status',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20)),
                ('label', models.CharField(blank=True, max_length=40)),
                ('description', models.TextField(blank=True, max_length=60)),
                ('color', colorfield.fields.ColorField(default='#FFFFFFFF', max_length=18)),
                ('sysaid_code', models.IntegerField(help_text='Аналогічний статус-код для sysaid')),
                ('close_timeout', models.IntegerField(blank=True, help_text='Якщо не пусте, припинити відслідковування та закрити оверлей через вказаний період (в хв.).', null=True, validators=[django.core.validators.MaxValueValidator(60), django.core.validators.MinValueValidator(2)])),
            ],
            options={
                'verbose_name_plural': '6. Статуси',
            },
        ),
        migrations.CreateModel(
            name='Reciever',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20, unique=True)),
                ('configuration', models.JSONField(help_text='Backend configuration.')),
                ('backend_configuration', models.JSONField()),
            ],
            options={
                'verbose_name_plural': '2. Конфігурація сервісу',
                'unique_together': {('name',)},
            },
        ),
        migrations.CreateModel(
            name='Department',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20)),
                ('contacts', models.TextField(blank=True, max_length=255)),
                ('categories_set', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='helpdesk.categoriesset')),
                ('location', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='taskbar.location')),
                ('reciever', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='helpdesk.reciever')),
            ],
            options={
                'verbose_name_plural': '1. Відділи',
                'unique_together': {('name', 'location')},
            },
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20, unique=True)),
                ('label', models.CharField(blank=True, help_text='If not empty used as name in frontend', max_length=20)),
                ('problems', models.ManyToManyField(blank=True, to='helpdesk.Problem')),
            ],
            options={
                'verbose_name_plural': '4. Категорії',
            },
        ),
        migrations.AddField(
            model_name='categoriesset',
            name='categories',
            field=models.ManyToManyField(blank=True, to='helpdesk.Category'),
        ),
        migrations.CreateModel(
            name='Issue',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('issue_id', models.IntegerField()),
                ('title', models.CharField(max_length=40)),
                ('description', models.TextField()),
                ('phone', models.CharField(blank=True, max_length=13, null=True)),
                ('hostname', models.CharField(max_length=20)),
                ('user_id', models.IntegerField()),
                ('responsibility', models.CharField(blank=True, max_length=40, null=True)),
                ('comments', models.TextField(blank=True)),
                ('create_datetime', models.DateTimeField(auto_now_add=True)),
                ('update_datetime', models.DateTimeField(null=True)),
                ('close_datetime', models.DateTimeField(null=True)),
                ('department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='helpdesk.department')),
                ('status', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='helpdesk.status')),
            ],
            options={
                'verbose_name_plural': '7. Зголошення',
                'unique_together': {('department', 'issue_id')},
            },
        ),
    ]