# Generated by Django 6.0 on 2025-12-23 19:39

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='ItemType',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200, unique=True, verbose_name='نام نوع کالا')),
                ('description', models.TextField(blank=True, verbose_name='توضیحات')),
            ],
            options={
                'verbose_name': 'نوع کالا',
                'verbose_name_plural': 'انواع کالا',
            },
        ),
        migrations.CreateModel(
            name='Location',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200, unique=True, verbose_name='نام محل')),
                ('description', models.TextField(blank=True, verbose_name='توضیحات')),
            ],
            options={
                'verbose_name': 'محل',
                'verbose_name_plural': 'محل ها',
            },
        ),
        migrations.CreateModel(
            name='Organization',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200, unique=True, verbose_name='نام سازمان')),
                ('description', models.TextField(blank=True, verbose_name='توضیحات')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'verbose_name': 'سازمان',
                'verbose_name_plural': 'سازمان ها',
            },
        ),
        migrations.CreateModel(
            name='Unit',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, unique=True, verbose_name='نام واحد')),
                ('abbreviation', models.CharField(blank=True, max_length=20, verbose_name='مخفف')),
            ],
            options={
                'verbose_name': 'واحد',
                'verbose_name_plural': 'واحدها',
            },
        ),
        migrations.CreateModel(
            name='Custodian',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('first_name', models.CharField(max_length=100, verbose_name='نام')),
                ('last_name', models.CharField(max_length=100, verbose_name='نام خانوادگی')),
                ('job_title', models.CharField(max_length=200, verbose_name='وظیفه')),
                ('phone', models.CharField(max_length=30, verbose_name='شماره تماس')),
                ('status', models.CharField(choices=[('pending', 'در انتظار تایید'), ('approved', 'تایید شده'), ('rejected', 'رد شده')], default='pending', max_length=20, verbose_name='وضعیت')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ثبت')),
                ('approved_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ تایید')),
                ('approved_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='approved_custodians', to=settings.AUTH_USER_MODEL, verbose_name='تایید کننده')),
                ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='created_custodians', to=settings.AUTH_USER_MODEL, verbose_name='ثبت کننده')),
                ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.organization', verbose_name='سازمان')),
            ],
            options={
                'verbose_name': 'امانت دار',
                'verbose_name_plural': 'امانت داران',
            },
        ),
        migrations.CreateModel(
            name='Asset',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(default='', max_length=200, verbose_name='نام کالا')),
                ('availability', models.CharField(choices=[('available', 'موجود'), ('unavailable', 'خریداری')], default='available', max_length=12, verbose_name='وضعیت موجودی')),
                ('description', models.TextField(verbose_name='شرح')),
                ('quantity', models.PositiveIntegerField(default=1, verbose_name='تعداد')),
                ('status', models.CharField(choices=[('pending', 'در انتظار تایید'), ('approved', 'تایید شده'), ('rejected', 'رد شده'), ('purchase_requested', 'ارسال برای خرید'), ('purchase_approved', 'خرید تایید شد'), ('purchase_rejected', 'خرید رد شد'), ('purchase_received', 'دریافت شد')], default='pending', max_length=20, verbose_name='وضعیت')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ثبت')),
                ('approved_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ تایید')),
                ('received_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ تحویل')),
                ('approved_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='approved_assets', to=settings.AUTH_USER_MODEL, verbose_name='تایید کننده')),
                ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='created_assets', to=settings.AUTH_USER_MODEL, verbose_name='ثبت کننده')),
                ('received_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='received_assets', to=settings.AUTH_USER_MODEL, verbose_name='تحویل گیرنده')),
                ('custodian', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.custodian', verbose_name='امانت دار')),
                ('item_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.itemtype', verbose_name='نوع کالا')),
                ('location', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.location', verbose_name='محل')),
                ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.organization', verbose_name='سازمان')),
                ('unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='assets.unit', verbose_name='واحد')),
            ],
            options={
                'verbose_name': 'اموال',
                'verbose_name_plural': 'اموال',
            },
        ),
        migrations.CreateModel(
            name='UserProfile',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('user_type', models.CharField(choices=[('owner', 'مالک سازمان'), ('employee', 'کارمند')], max_length=10, verbose_name='نوع کاربر')),
                ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.organization', verbose_name='سازمان')),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'پروفایل کاربر',
                'verbose_name_plural': 'پروفایل کاربران',
            },
        ),
    ]
