# Generated by Django 6.0.3 on 2026-04-05 08:50

import django.db.models.deletion
import uuid
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('distributor', '0004_brandambassadoreligibility'),
        ('power_stream', '0001_initial'),
        ('schemes', '0007_alter_scheme_id_alter_schemedistribution_id_and_more'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='PowerStreamBonusRecord',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('is_active', models.BooleanField(db_index=True, default=True)),
                ('level', models.PositiveSmallIntegerField()),
                ('gross_amount', models.DecimalField(decimal_places=2, max_digits=12)),
                ('net_amount', models.DecimalField(decimal_places=2, max_digits=12)),
                ('status', models.CharField(choices=[('PENDING', 'Pending'), ('CLAIMED', 'Claimed'), ('EXPIRED', 'Expired'), ('FORFEITED', 'Forfeited')], db_index=True, default='PENDING', max_length=12)),
                ('earned_at', models.DateTimeField(auto_now_add=True, db_index=True)),
                ('expires_at', models.DateTimeField(db_index=True)),
                ('claimed_at', models.DateTimeField(blank=True, null=True)),
                ('claim_period', models.CharField(blank=True, db_index=True, max_length=7, null=True)),
                ('reference_id', models.CharField(db_index=True, max_length=128, unique=True)),
                ('earner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='power_stream_bonuses', to=settings.AUTH_USER_MODEL)),
                ('earner_distributor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='power_stream_earned', to='distributor.distributorid')),
                ('scheme', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='power_stream_records', to='schemes.opportunitybundle')),
                ('trigger_distributor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='power_stream_triggered', to='distributor.distributorid')),
            ],
            options={
                'ordering': ['-earned_at'],
                'indexes': [models.Index(fields=['earner', 'status'], name='power_strea_earner__1a0c92_idx'), models.Index(fields=['earner', 'claim_period'], name='power_strea_earner__f1e8c9_idx'), models.Index(fields=['status', 'expires_at'], name='power_strea_status_538c2c_idx')],
            },
        ),
        migrations.CreateModel(
            name='PowerStreamMonthlyClaim',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('is_active', models.BooleanField(db_index=True, default=True)),
                ('claim_month', models.CharField(db_index=True, max_length=7)),
                ('total_gross', models.DecimalField(decimal_places=2, default=0, max_digits=12)),
                ('total_net', models.DecimalField(decimal_places=2, default=0, max_digits=12)),
                ('records_count', models.PositiveIntegerField(default=0)),
                ('status', models.CharField(choices=[('CLAIMED', 'Claimed'), ('EXPIRED', 'Expired')], default='CLAIMED', max_length=10)),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='power_stream_monthly_claims', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['-claim_month'],
                'indexes': [models.Index(fields=['user', 'claim_month'], name='power_strea_user_id_31ccb1_idx')],
                'unique_together': {('user', 'claim_month')},
            },
        ),
    ]
