# Generated by Django 5.2.4 on 2026-08-26 10:37 import django.core.validators import django.db.models.deletion from django.conf import settings from django.db import migrations, models import finance.models class Migration(migrations.Migration): dependencies = [ ("finance", "0026_alter_employeepayrate_source_and_more"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="PayrollCustomComponent", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "code", models.CharField( default=finance.models.generate_custom_payroll_component_code, editable=False, max_length=64, unique=True, validators=[ django.core.validators.RegexValidator( message="Код должен начинаться с A-Z и содержать только A-Z, 0-9, _.-", regex="^[A-Z][A-Z0-9_.-]{0,63}$", ) ], verbose_name="Код", ), ), ( "name", models.CharField( max_length=80, unique=True, verbose_name="Название" ), ), ( "kind", models.CharField( choices=[ ("earning", "Начисление"), ("adjustment_credit", "Коррекция +"), ("adjustment_debit", "Коррекция −"), ("deduction", "Удержание"), ("payment", "Выплата"), ], max_length=24, verbose_name="Влияние на расчёт", ), ), ( "requires_reason", models.BooleanField( default=False, verbose_name="Требовать основание" ), ), ( "is_active", models.BooleanField(default=True, verbose_name="Активна"), ), ( "display_order", models.PositiveIntegerField(default=900, verbose_name="Порядок"), ), ( "created_at", models.DateTimeField(auto_now_add=True, verbose_name="Создана"), ), ( "created_by", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="created_payroll_components", to=settings.AUTH_USER_MODEL, verbose_name="Создал", ), ), ], options={ "verbose_name": "Пользовательская зарплатная колонка", "verbose_name_plural": "Пользовательские зарплатные колонки", "ordering": ["display_order", "name", "id"], }, ), ]