# Generated by Django 6.0.3 on 2026-04-05 07:04

import django.db.models.deletion
from decimal import Decimal
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('wallet', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AddField(
            model_name='wallet',
            name='voucher_balance',
            field=models.DecimalField(decimal_places=2, default=Decimal('0.00'), max_digits=12),
        ),
        migrations.AlterField(
            model_name='walletledger',
            name='source_type',
            field=models.CharField(choices=[('DIRECT_INCENTIVE', 'Direct Incentive'), ('LEVEL_REWARD', 'Level Reward'), ('POWER_STREAM', 'Power Stream'), ('LUCKY_DIP', 'Lucky Dip'), ('PURCHASE', 'Purchase'), ('VOUCHER_PURCHASE', 'Voucher Purchase'), ('VOUCHER_REDEMPTION', 'Voucher Redemption'), ('VOUCHER_ADJUSTMENT', 'Voucher Adjustment')], max_length=20),
        ),
        migrations.AlterField(
            model_name='walletledger',
            name='wallet_type',
            field=models.CharField(choices=[('EARNINGS', 'Earnings'), ('REPURCHASE', 'Repurchase'), ('VOUCHER', 'Voucher')], max_length=12),
        ),
        migrations.CreateModel(
            name='UserVoucherCode',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('code', models.CharField(db_index=True, max_length=32, unique=True)),
                ('total_value', models.DecimalField(decimal_places=2, max_digits=12)),
                ('remaining_value', models.DecimalField(decimal_places=2, max_digits=12)),
                ('source_reference_id', models.CharField(db_index=True, max_length=64)),
                ('status', models.CharField(choices=[('ACTIVE', 'Active'), ('PARTIAL', 'Partially Used'), ('USED', 'Used'), ('EXPIRED', 'Expired')], db_index=True, default='ACTIVE', max_length=12)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='voucher_codes', to=settings.AUTH_USER_MODEL)),
                ('wallet', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='voucher_codes', to='wallet.wallet')),
            ],
            options={
                'ordering': ['-created_at'],
                'indexes': [models.Index(fields=['user', 'status', 'created_at'], name='wallet_user_user_id_b73965_idx'), models.Index(fields=['wallet', 'status', 'created_at'], name='wallet_user_wallet__20400b_idx')],
            },
        ),
    ]
