# Generated by Django 5.1.6 on 2025-02-12 14:42

import django.db.models.deletion
import django.utils.timezone
from django.db import migrations, models


class Migration(migrations.Migration):
    initial = True

    dependencies = [
        ("organizations_ext", "0006_organization_stripe_subscription_id"),
        (
            "organizations_ext",
            "0007_rename_stripe_subscription_id_organization_stripe_customer_id",
        ),
    ]

    operations = [
        migrations.CreateModel(
            name="StripeProduct",
            fields=[
                (
                    "stripe_id",
                    models.CharField(max_length=28, primary_key=True, serialize=False),
                ),
                ("description", models.TextField()),
                ("price", models.DecimalField(decimal_places=2, max_digits=10)),
                ("events", models.PositiveBigIntegerField()),
                ("is_public", models.BooleanField()),
                ("name", models.CharField(default="")),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="StripeSubscription",
            fields=[
                (
                    "stripe_id",
                    models.CharField(max_length=28, primary_key=True, serialize=False),
                ),
                ("current_period_start", models.DateTimeField()),
                ("current_period_end", models.DateTimeField()),
                (
                    "organization",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="organizations_ext.organization",
                    ),
                ),
                (
                    "product",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="stripe.stripeproduct",
                    ),
                ),
                ("is_active", models.BooleanField(default=False)),
                ("is_primary", models.BooleanField(default=False)),
                ("created", models.DateTimeField(default=django.utils.timezone.now)),
            ],
            options={
                "abstract": False,
                "constraints": [
                    models.UniqueConstraint(
                        condition=models.Q(("is_primary", True)),
                        fields=("organization", "is_primary"),
                        name="unique_primary_subscription_per_organization",
                    )
                ],
            },
        ),
    ]
