# Generated by Django 6.0.2 on 2026-02-16 11:07

import django.contrib.auth.models
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('Work', '0001_initial'),
        ('auth', '0012_alter_user_first_name_max_length'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='EmployeeLevel',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(default='کارمند عادی', max_length=50, verbose_name='عنوان سطح')),
                ('seniority_coefficient', models.FloatField(default=1.0, verbose_name='ضریب تجربه')),
            ],
            options={
                'verbose_name': 'سطح تجربه',
                'verbose_name_plural': 'سطوح تجربه',
            },
        ),
        migrations.CreateModel(
            name='EmployeeReport',
            fields=[
            ],
            options={
                'verbose_name': 'گزارش وضعیت کارمند',
                'verbose_name_plural': 'گزارش کار کارکنان',
                'proxy': True,
                'indexes': [],
                'constraints': [],
            },
            bases=('auth.user',),
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='EmployeeProfile',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('scoring_level', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='Scoring.employeelevel')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='scoring_profile', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'پروفایل امتیازی',
                'verbose_name_plural': 'پروفایل\u200cهای امتیازی',
            },
        ),
        migrations.CreateModel(
            name='SalaryPeriod',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, verbose_name='عنوان دوره')),
                ('start_date', models.DateField(verbose_name='از تاریخ')),
                ('end_date', models.DateField(verbose_name='تا تاریخ')),
                ('total_revenue', models.BigIntegerField(verbose_name='درآمد کل دوره (تومان)')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('selected_users', models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL, verbose_name='کارمندان مشمول محاسبه')),
            ],
            options={
                'verbose_name': 'دوره محاسبه حقوق',
                'verbose_name_plural': 'دوره\u200cهای محاسبه حقوق',
            },
        ),
        migrations.CreateModel(
            name='SalaryDetail',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('base_amount', models.BigIntegerField(verbose_name='مبلغ پایه (۵۰٪)')),
                ('performance_amount', models.BigIntegerField(verbose_name='مبلغ عملکردی')),
                ('final_payment', models.BigIntegerField(verbose_name='مبلغ کل پرداختی')),
                ('total_score_gained', models.FloatField(verbose_name='امتیاز')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='کارمند')),
                ('period', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='details', to='Scoring.salaryperiod')),
            ],
            options={
                'verbose_name': 'جزئیات حقوق',
                'verbose_name_plural': 'جزئیات حقوق',
                'ordering': ('-final_payment',),
            },
        ),
        migrations.CreateModel(
            name='TaskValue',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('complexity_coefficient', models.FloatField(default=1.0, verbose_name='ضریب سختی')),
                ('task_type', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='scoring_value', to='Work.tasktype', verbose_name='نوع فعالیت')),
            ],
            options={
                'verbose_name': 'ارزش\u200cگذاری فعالیت',
                'verbose_name_plural': 'ارزش\u200cگذاری فعالیت\u200cها',
            },
        ),
        migrations.CreateModel(
            name='WorkScore',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('quality_rating', models.PositiveSmallIntegerField(choices=[(1, '۱ ستاره (0.6)'), (2, '۲ ستاره (0.8)'), (3, '۳ ستاره (1.0)'), (4, '۴ ستاره (1.2)'), (5, '۵ ستاره (1.5)')], default=3, verbose_name='امتیاز کیفی')),
                ('manual_complexity', models.FloatField(blank=True, help_text='اگر خالی باشد، از سختی پیش\u200cفرض نوع فعالیت استفاده می\u200cشود.', null=True, verbose_name='سختی دستی (اختیاری)')),
                ('manual_seniority', models.FloatField(blank=True, help_text='اگر خالی باشد، از ضریب تجربه پیش\u200cفرض کاربر استفاده می\u200cشود.', null=True, verbose_name='تجربه دستی (اختیاری)')),
                ('manager_note', models.TextField(blank=True, null=True, verbose_name='یادداشت مدیر')),
                ('final_task_score', models.FloatField(default=0, editable=False, verbose_name='امتیاز نهایی')),
                ('work_log', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='scoring_detail', to='Work.worklog', verbose_name='گزارش کار مرتبط')),
            ],
            options={
                'verbose_name': 'امتیاز و ارزیابی',
                'verbose_name_plural': 'امتیازات',
            },
        ),
    ]
