# Generated by Django 5.2.11 on 2026-02-14 19:24

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ("tenant", "0002_domain_ssl_enabled_tenant_activated_at_and_more"),
    ]

    operations = [
        migrations.CreateModel(
            name="Currency",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "code",
                    models.CharField(
                        help_text="ISO 4217 — مثلاً IRR, USD, EUR",
                        max_length=10,
                        verbose_name="کد ارز",
                    ),
                ),
                ("name", models.CharField(max_length=100, verbose_name="نام ارز")),
                (
                    "name_en",
                    models.CharField(
                        blank=True, max_length=100, verbose_name="نام انگلیسی"
                    ),
                ),
                (
                    "symbol",
                    models.CharField(
                        blank=True,
                        help_text="مثلاً ﷼, $, €",
                        max_length=10,
                        verbose_name="نماد",
                    ),
                ),
                (
                    "decimal_places",
                    models.PositiveSmallIntegerField(
                        default=0,
                        help_text="تعداد رقم اعشار برای این ارز",
                        verbose_name="تعداد اعشار",
                    ),
                ),
                (
                    "is_base",
                    models.BooleanField(
                        default=False,
                        help_text="آیا ارز پایه Tenant است؟",
                        verbose_name="ارز پایه",
                    ),
                ),
                (
                    "is_active",
                    models.BooleanField(
                        db_index=True, default=True, verbose_name="فعال"
                    ),
                ),
                (
                    "created_at",
                    models.DateTimeField(auto_now_add=True, verbose_name="تاریخ ایجاد"),
                ),
                (
                    "updated_at",
                    models.DateTimeField(auto_now=True, verbose_name="تاریخ بروزرسانی"),
                ),
                (
                    "tenant",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="%(class)s_set",
                        to="tenant.tenant",
                    ),
                ),
            ],
            options={
                "verbose_name": "ارز",
                "verbose_name_plural": "ارزها",
                "db_table": "currencies",
                "ordering": ["-is_base", "code"],
            },
        ),
        migrations.CreateModel(
            name="ExchangeRate",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "rate",
                    models.DecimalField(
                        decimal_places=6, max_digits=18, verbose_name="نرخ تبدیل"
                    ),
                ),
                (
                    "effective_date",
                    models.DateField(db_index=True, verbose_name="تاریخ اعتبار"),
                ),
                (
                    "source",
                    models.CharField(
                        blank=True,
                        help_text="منبع نرخ — مثلاً بانک مرکزی، سنا، …",
                        max_length=100,
                        verbose_name="منبع",
                    ),
                ),
                (
                    "created_at",
                    models.DateTimeField(auto_now_add=True, verbose_name="تاریخ ایجاد"),
                ),
                (
                    "created_by",
                    models.UUIDField(blank=True, null=True, verbose_name="ایجاد توسط"),
                ),
                (
                    "from_currency",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="rates_from",
                        to="core_currency.currency",
                        verbose_name="ارز مبدأ",
                    ),
                ),
                (
                    "tenant",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="%(class)s_set",
                        to="tenant.tenant",
                    ),
                ),
                (
                    "to_currency",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="rates_to",
                        to="core_currency.currency",
                        verbose_name="ارز مقصد",
                    ),
                ),
            ],
            options={
                "verbose_name": "نرخ تبدیل",
                "verbose_name_plural": "نرخ\u200cهای تبدیل",
                "db_table": "exchange_rates",
                "ordering": ["-effective_date"],
            },
        ),
        migrations.AddIndex(
            model_name="currency",
            index=models.Index(
                fields=["tenant", "is_active"], name="currencies_tenant__99db78_idx"
            ),
        ),
        migrations.AlterUniqueTogether(
            name="currency",
            unique_together={("tenant", "code")},
        ),
        migrations.AddIndex(
            model_name="exchangerate",
            index=models.Index(
                fields=["tenant", "from_currency", "to_currency", "effective_date"],
                name="exchange_ra_tenant__2de9d7_idx",
            ),
        ),
        migrations.AlterUniqueTogether(
            name="exchangerate",
            unique_together={
                ("tenant", "from_currency", "to_currency", "effective_date")
            },
        ),
    ]
