# Generated by Django 5.0.3 on 2024-03-18 14:49

import django.db.models.deletion
import psqlextra.backend.migrations.operations.add_default_partition
import psqlextra.backend.migrations.operations.create_partitioned_model
import psqlextra.manager.manager
import psqlextra.models.partitioned
import psqlextra.types
from django.db import migrations, models
from glitchtip.model_utils import TestDefaultPartition


class Migration(migrations.Migration):
    dependencies = [
        ("projects", "0013_merge_20231017_1350"),
    ]

    operations = [
        psqlextra.backend.migrations.operations.create_partitioned_model.PostgresCreatePartitionedModel(
            name="IssueEventProjectHourlyStatistic",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("date", models.DateTimeField()),
                ("count", models.PositiveIntegerField()),
                (
                    "project",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="projects.project",
                    ),
                ),
            ],
            options={
                "abstract": False,
                "unique_together": {("project", "date")},
            },
            partitioning_options={
                "method": psqlextra.types.PostgresPartitioningMethod["RANGE"],
                "key": ["date"],
            },
            bases=(psqlextra.models.partitioned.PostgresPartitionedModel,),
            managers=[
                ("objects", psqlextra.manager.manager.PostgresManager()),
            ],
        ),
        migrations.AlterModelManagers(
            name="transactioneventprojecthourlystatistic",
            managers=[
                ("objects", psqlextra.manager.manager.PostgresManager()),
            ],
        ),
        TestDefaultPartition(
            model_name="IssueEventProjectHourlyStatistic",
            name="default",
        ),
        migrations.DeleteModel(
            name="EventProjectHourlyStatistic",
        ),
        migrations.DeleteModel(
            name="TransactionEventProjectHourlyStatistic",
        ),
        psqlextra.backend.migrations.operations.create_partitioned_model.PostgresCreatePartitionedModel(
            name="TransactionEventProjectHourlyStatistic",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("date", models.DateTimeField()),
                ("count", models.PositiveIntegerField()),
                (
                    "project",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="projects.project",
                    ),
                ),
            ],
            options={
                "abstract": False,
                "unique_together": {("project", "date")},
            },
            partitioning_options={
                "method": psqlextra.types.PostgresPartitioningMethod["RANGE"],
                "key": ["date"],
            },
            bases=(psqlextra.models.partitioned.PostgresPartitionedModel,),
            managers=[
                ("objects", psqlextra.manager.manager.PostgresManager()),
            ],
        ),
        TestDefaultPartition(
            model_name="TransactionEventProjectHourlyStatistic",
            name="default",
        ),
    ]