# Generated by Django 5.1.5 on 2025-01-29 21:26 import datetime import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Device', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ('type', models.CharField(choices=[('PC', 'PC'), ('Console', 'Console'), ('Handheld', 'Handheld'), ('Mobile', 'Mobile'), ('Single-board computer', 'Single-board computer'), ('Unknown', 'Unknown')], default='Unknown', max_length=255)), ('created_at', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='Platform', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ('group', models.CharField(blank=True, default=None, max_length=255, null=True)), ('icon', models.SlugField(blank=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='ExchangeRate', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('currency_from', models.CharField(max_length=255)), ('currency_to', models.CharField(max_length=255)), ('year', models.PositiveIntegerField()), ('rate', models.FloatField()), ], options={ 'unique_together': {('currency_from', 'currency_to', 'year')}, }, ), migrations.CreateModel( name='Game', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ('sort_name', models.CharField(blank=True, default=None, max_length=255, null=True)), ('year_released', models.IntegerField(blank=True, default=None, null=True)), ('wikidata', models.CharField(blank=True, default=None, max_length=50, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('platform', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='games.platform')), ], options={ 'unique_together': {('name', 'platform', 'year_released')}, }, ), migrations.CreateModel( name='Purchase', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date_purchased', models.DateField()), ('date_refunded', models.DateField(blank=True, null=True)), ('date_finished', models.DateField(blank=True, null=True)), ('date_dropped', models.DateField(blank=True, null=True)), ('infinite', models.BooleanField(default=False)), ('price', models.FloatField(default=0)), ('price_currency', models.CharField(default='USD', max_length=3)), ('converted_price', models.FloatField(null=True)), ('converted_currency', models.CharField(max_length=3, null=True)), ('ownership_type', models.CharField(choices=[('ph', 'Physical'), ('di', 'Digital'), ('du', 'Digital Upgrade'), ('re', 'Rented'), ('bo', 'Borrowed'), ('tr', 'Trial'), ('de', 'Demo'), ('pi', 'Pirated')], default='di', max_length=2)), ('type', models.CharField(choices=[('game', 'Game'), ('dlc', 'DLC'), ('season_pass', 'Season Pass'), ('battle_pass', 'Battle Pass')], default='game', max_length=255)), ('name', models.CharField(blank=True, default='', max_length=255, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('games', models.ManyToManyField(blank=True, related_name='purchases', to='games.game')), ('platform', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='games.platform')), ('related_purchase', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='related_purchases', to='games.purchase')), ], ), migrations.CreateModel( name='Session', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('timestamp_start', models.DateTimeField()), ('timestamp_end', models.DateTimeField(blank=True, null=True)), ('duration_manual', models.DurationField(blank=True, default=datetime.timedelta(0), null=True)), ('duration_calculated', models.DurationField(blank=True, null=True)), ('note', models.TextField(blank=True, null=True)), ('emulated', models.BooleanField(default=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('modified_at', models.DateTimeField(auto_now=True)), ('device', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='games.device')), ('game', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sessions', to='games.game')), ], options={ 'get_latest_by': 'timestamp_start', }, ), ]