# Generated by Django 5.2.17 on 2026-08-10 11:37 import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='LeaderboardEntry', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('user_id', models.IntegerField(db_index=True)), ('period', models.CharField(choices=[('weekly', 'هفتگی'), ('all_time', 'کل زمان')], max_length=10)), ('xp_in_period', models.PositiveIntegerField(default=0)), ('rank', models.PositiveIntegerField()), ], options={ 'ordering': ['rank'], }, ), migrations.CreateModel( name='StreakRecord', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('user_id', models.IntegerField(db_index=True, unique=True)), ('current_streak', models.PositiveIntegerField(default=0)), ('longest_streak', models.PositiveIntegerField(default=0)), ], ), migrations.CreateModel( name='UserHearts', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('user_id', models.IntegerField(db_index=True, unique=True)), ('current_hearts', models.PositiveSmallIntegerField(default=5)), ('max_hearts', models.PositiveSmallIntegerField(default=5)), ('next_refill_at', models.DateTimeField(blank=True, null=True)), ], ), migrations.CreateModel( name='UserStats', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('user_id', models.IntegerField(db_index=True, unique=True)), ('xp', models.PositiveIntegerField(default=0)), ('coins', models.PositiveIntegerField(default=0)), ('progress_percent', models.FloatField(default=0)), ], ), migrations.CreateModel( name='ActiveDay', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateField()), ('streak', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='active_days', to='progress.streakrecord')), ], options={ 'ordering': ['date'], }, ), ]