class Migration(migrations.Migration): dependencies = [ ('decks', '0006_auto_20170824_1413'), ] operations = [ migrations.CreateModel( name='ClassClusterSnapshot', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('player_class', django_intenum.IntEnumField(default=0, enum=hearthstone.enums.CardClass)), ], ), migrations.CreateModel( name='ClusterSetSnapshot', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('as_of', models.DateTimeField(default=django.utils.timezone.now)), ('game_format', django_intenum.IntEnumField(default=2, enum=hearthstone.enums.FormatType)), ], options={ 'get_latest_by': 'as_of', }, ), migrations.CreateModel( name='ClusterSnapshot', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('cluster_id', models.IntegerField()), ('experimental', models.BooleanField(default=False)), ('signature', django.contrib.postgres.fields.jsonb.JSONField(default=dict)), ('name', models.CharField(blank=True, max_length=250)), ('archetype', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='decks.Archetype')), ('class_cluster', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='decks.ClassClusterSnapshot')), ], ), migrations.CreateModel( name='ClusterSnapshotMember', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('observations', models.IntegerField()), ('win_rate', models.FloatField()), ('x', models.FloatField()), ('y', models.FloatField()), ('cluster', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='decks.ClusterSnapshot')), ('deck', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='decks.Deck')), ], ), migrations.AddField( model_name='classclustersnapshot', name='cluster_set', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='decks.ClusterSetSnapshot'), ), ]
class Migration(migrations.Migration): dependencies = [ ('uploads', '0006_auto_20170125_2001'), ] operations = [ migrations.AddField( model_name='redshiftstagingtrack', name='refreshing_view_end_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='refreshing_view_start_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='is_materialized_view', field=models.BooleanField(default=False), ), migrations.AddField( model_name='redshiftstagingtracktable', name='refreshing_view_end_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='refreshing_view_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='refreshing_view_start_at', field=models.DateTimeField(null=True), ), migrations.AlterField( model_name='redshiftstagingtrack', name='stage', field=django_intenum.IntEnumField( default=1, enum=hsreplaynet.uploads.models.RedshiftETLStage), ), migrations.AlterField( model_name='redshiftstagingtracktable', name='stage', field=django_intenum.IntEnumField( default=1, enum=hsreplaynet.uploads.models.RedshiftETLStage), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='UploadEvent', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('shortid', hsreplaynet.utils.fields.ShortUUIDField(blank=True, editable=False, max_length=22, unique=True, verbose_name='Short ID')), ('token_uuid', models.UUIDField(blank=True, db_column='token_id', null=True)), ('api_key_id', models.IntegerField(blank=True, db_column='api_key_id', null=True)), ('game_id', models.BigIntegerField(blank=True, db_column='game_id', null=True)), ('created', models.DateTimeField(auto_now_add=True, db_index=True)), ('upload_ip', models.GenericIPAddressField(null=True)), ('status', django_intenum.IntEnumField(default=0, enum=hsreplaynet.uploads.models.UploadEventStatus, db_index=True)), ('tainted', models.BooleanField(default=False)), ('error', models.TextField(blank=True)), ('traceback', models.TextField(blank=True)), ('test_data', models.BooleanField(default=False)), ('canary', models.BooleanField(default=False)), ('metadata', models.TextField(blank=True)), ('file', models.FileField(null=True, upload_to=hsreplaynet.uploads.models._generate_upload_path)), ('user_agent', models.CharField(blank=True, max_length=100)), ('log_stream_name', models.CharField(blank=True, max_length=64)), ('log_group_name', models.CharField(blank=True, max_length=64)), ('updated', models.DateTimeField(auto_now=True)), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Feature', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ('description', models.TextField(blank=True)), ('created', models.DateTimeField(auto_now_add=True)), ('status', django_intenum.IntEnumField( choices=[(0, 'OFF'), (1, 'STAFF_ONLY'), (2, 'IN_PROGRESS'), (3, 'PUBLIC'), (4, 'AUTHORIZED_ONLY')], default=2, validators=[ django_intenum.IntEnumValidator( hsreplaynet.features.models.FeatureStatus) ])), ('read_only', models.BooleanField(default=False)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('games', '0005_auto_20170304_0335'), ] operations = [ migrations.AddField( model_name='globalgameplayer', name='pegasus_account', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='games.PegasusAccount'), ), migrations.AlterField( model_name='pegasusaccount', name='region', field=django_intenum.IntEnumField( choices=[(-1, 'REGION_UNINITIALIZED'), (0, 'REGION_UNKNOWN'), (1, 'REGION_US'), (2, 'REGION_EU'), (3, 'REGION_KR'), (4, 'REGION_TW'), (5, 'REGION_CN'), (40, 'REGION_LIVE_VERIFICATION'), (41, 'REGION_PTR_LOC'), (52, 'REGION_MSCHWEITZER_BN11'), (53, 'REGION_MSCHWEITZER_BN12'), (60, 'REGION_DEV'), (98, 'REGION_PTR')], validators=[ django_intenum.IntEnumValidator( hearthstone.enums.BnetRegion) ]), ), ]
class Migration(migrations.Migration): dependencies = [ ('djstripe', '0001_initial'), ('features', '0002_auto_20170303_0721'), ] operations = [ migrations.AddField( model_name='featureinvite', name='subscribe_to', field=models.ForeignKey( blank=True, help_text='Auto subscribe to this Stripe Plan', null=True, on_delete=django.db.models.deletion.CASCADE, to='djstripe.Plan'), ), migrations.AlterField( model_name='feature', name='status', field=django_intenum.IntEnumField( choices=[(0, 'OFF'), (1, 'STAFF_ONLY'), (2, 'AUTHORIZED_ONLY'), (3, 'LOGGED_IN_USERS'), (4, 'PUBLIC')], default=0, validators=[ django_intenum.IntEnumValidator( hsreplaynet.features.models.FeatureStatus) ]), ), ]
class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('games', '0004_globalgame_tainted_decks'), ] operations = [ migrations.CreateModel( name='PegasusAccount', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('account_hi', models.BigIntegerField(help_text='The region value from account hilo', verbose_name='Account Hi')), ('account_lo', models.BigIntegerField(help_text='The account ID value from account hilo', verbose_name='Account Lo')), ('region', django_intenum.IntEnumField(verbose_name=hearthstone.enums.BnetRegion)), ('battletag', models.CharField(blank=True, max_length=64)), ('created', models.DateTimeField(auto_now_add=True)), ('modified', models.DateTimeField(auto_now=True)), ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), ], ), migrations.RemoveField( model_name='globalgameplayer', name='user', ), migrations.AlterUniqueTogether( name='pegasusaccount', unique_together=set([('account_hi', 'account_lo')]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('cards', '0001_initial'), ] operations = [ migrations.CreateModel( name='Pack', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('booster_type', django_intenum.IntEnumField( choices=[(0, 'INVALID'), (1, 'CLASSIC'), (9, 'GOBLINS_VS_GNOMES'), (10, 'THE_GRAND_TOURNAMENT'), (11, 'OLD_GODS'), (17, 'FIRST_PURCHASE'), (18, 'SIGNUP_INCENTIVE'), (19, 'MEAN_STREETS'), (20, 'UNGORO')], validators=[ django_intenum.IntEnumValidator( hearthstone.enums.Booster) ])), ('date', models.DateTimeField()), ('account_hi', models.BigIntegerField()), ('account_lo', models.BigIntegerField()), ], ), migrations.CreateModel( name='PackCard', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('premium', models.BooleanField()), ('card', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cards.Card')), ('pack', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='packs.Pack')), ], ), migrations.AddField( model_name='pack', name='cards', field=models.ManyToManyField(through='packs.PackCard', to='cards.Card'), ), migrations.AddField( model_name='pack', name='user', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='User', fields=[ ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')), ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('id', models.BigAutoField(primary_key=True, serialize=False)), ('username', models.CharField(max_length=150, unique=True)), ('battletag', models.CharField(blank=True, help_text="The user's primary Battle.net username.", max_length=24)), ('is_fake', models.BooleanField(default=False)), ('locale', models.CharField(choices=[('enUS', 'English'), ('zhTW', 'Chinese (TW)'), ('zhCN', 'Chinese (CN)'), ('frFR', 'French'), ('deDE', 'German'), ('itIT', 'Italian'), ('jaJP', 'Japanese'), ('koKR', 'Korean'), ('plPL', 'Polish'), ('ptBR', 'Portuguese (BR)'), ('ptPT', 'Portuguese (PT)'), ('ruRU', 'Russian'), ('esES', 'Spanish (ES)'), ('esMX', 'Spanish (MX)'), ('thTH', 'Thai')], default='enUS', help_text="The user's preferred Hearthstone locale for display", max_length=8)), ('default_replay_visibility', django_intenum.IntEnumField(choices=[(1, 'Public'), (2, 'Unlisted')], default=1, validators=[django_intenum.IntEnumValidator(hsreplaynet.games.models.Visibility)], verbose_name='Default replay visibility')), ('exclude_from_statistics', models.BooleanField(default=False)), ('joust_autoplay', models.BooleanField(default=True)), ], options={ 'abstract': False, 'verbose_name_plural': 'users', 'verbose_name': 'user', }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='AccountClaim', fields=[ ('id', models.UUIDField(primary_key=True, serialize=False)), ('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')), ], ), migrations.CreateModel( name='AccountDeleteRequest', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('reason', models.TextField(blank=True)), ('delete_replay_data', models.BooleanField(default=False)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('features', '0001_initial'), ] operations = [ migrations.CreateModel( name='FeatureInvite', fields=[ ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('use_count', models.PositiveIntegerField( default=0, editable=False, help_text= 'The amount of times this invitation has been successfully used.' )), ('max_uses', models.PositiveIntegerField(default=0, help_text='0 for unlimited')), ('expires', models.DateTimeField( blank=True, help_text='No longer valid after this date.', null=True)), ('created', models.DateTimeField(auto_now_add=True)), ('modified', models.DateTimeField(auto_now=True)), ], ), migrations.AlterField( model_name='feature', name='status', field=django_intenum.IntEnumField( choices=[(0, 'OFF'), (1, 'STAFF_ONLY'), (2, 'IN_PROGRESS'), (3, 'PUBLIC'), (4, 'AUTHORIZED_ONLY'), (5, 'LOGGED_IN_USERS')], default=2, validators=[ django_intenum.IntEnumValidator( hsreplaynet.features.models.FeatureStatus) ]), ), migrations.AddField( model_name='featureinvite', name='features', field=models.ManyToManyField(related_name='invites', to='features.Feature'), ), ]
class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('decks', '0018_clustersetsnapshot_promoted_on'), ] operations = [ migrations.CreateModel( name='ArchetypeName', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=250)), ('created', models.DateTimeField(default=django.utils.timezone.now)), ('player_class', django_intenum.IntEnumField( default=0, enum=hearthstone.enums.CardClass)), ('contributing_user', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='ArchetypeSuggestion', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('as_of', models.DateTimeField(default=django.utils.timezone.now)), ('deck', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='decks.Deck')), ('suggested_name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='decks.ArchetypeName')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.AlterUniqueTogether( name='archetypesuggestion', unique_together={('deck', 'user')}, ), migrations.AlterUniqueTogether( name='archetypename', unique_together={('name', 'player_class')}, ), ]
class Migration(migrations.Migration): dependencies = [ ('cards', '0003_auto_20190701_1420'), ] operations = [ migrations.AddField( model_name='card', name='multi_class_group', field=django_intenum.IntEnumField( default=0, enum=hearthstone.enums.MultiClassGroup), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ("cards", "0001_initial"), ] operations = [ migrations.CreateModel( name="Pack", fields=[ ("id", models.BigAutoField(primary_key=True, serialize=False)), ("booster_type", django_intenum.IntEnumField(enum=hearthstone.enums.Booster)), ("date", models.DateTimeField()), ], ), migrations.CreateModel( name="PackCard", fields=[ ("id", models.BigAutoField(primary_key=True, serialize=False)), ("premium", models.BooleanField()), ("card", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="cards.Card")), ("pack", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to="packs.Pack")), ], ), migrations.AddField( model_name="pack", name="cards", field=models.ManyToManyField(through="packs.PackCard", to="cards.Card"), ), migrations.AddField( model_name="pack", name="user", field=models.ForeignKey( null=True, blank=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, related_name="packs" ), ), migrations.AddField( model_name="pack", name="blizzard_account", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="accounts.BlizzardAccount", related_name="packs" ), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('cards', '0001_initial'), ] operations = [ migrations.CreateModel( name='Pack', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('booster_type', django_intenum.IntEnumField(enum=hearthstone.enums.Booster)), ('date', models.DateTimeField()), ('account_hi', models.BigIntegerField()), ('account_lo', models.BigIntegerField()), ], ), migrations.CreateModel( name='PackCard', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('premium', models.BooleanField()), ('card', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='cards.Card')), ('pack', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='packs.Pack')), ], ), migrations.AddField( model_name='pack', name='cards', field=models.ManyToManyField(through='packs.PackCard', to='cards.Card'), ), migrations.AddField( model_name='pack', name='user', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='UploadEvent', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('shortid', hsreplaynet.utils.fields.ShortUUIDField( blank=True, editable=False, max_length=22, unique=True, verbose_name='Short ID')), ('token_uuid', models.UUIDField(blank=True, db_column='token_id', null=True)), ('api_key_id', models.IntegerField(blank=True, db_column='api_key_id', null=True)), ('game_id', models.BigIntegerField(blank=True, db_column='game_id', null=True)), ('created', models.DateTimeField(auto_now_add=True, db_index=True)), ('upload_ip', models.GenericIPAddressField(null=True)), ('status', django_intenum.IntEnumField( choices=[(0, 'UNKNOWN'), (1, 'PROCESSING'), (2, 'SERVER_ERROR'), (3, 'PARSING_ERROR'), (4, 'SUCCESS'), (5, 'UNSUPPORTED'), (6, 'VALIDATION_ERROR'), (7, 'VALIDATING'), (8, 'UNSUPPORTED_CLIENT'), (9, 'PENDING')], default=0, validators=[ django_intenum.IntEnumValidator( hsreplaynet.uploads.models.UploadEventStatus) ])), ('tainted', models.BooleanField(default=False)), ('error', models.TextField(blank=True)), ('traceback', models.TextField(blank=True)), ('test_data', models.BooleanField(default=False)), ('canary', models.BooleanField(default=False)), ('metadata', models.TextField(blank=True)), ('file', models.FileField(null=True, upload_to=hsreplaynet.uploads.models. _generate_upload_path)), ('descriptor', models.FileField(blank=True, null=True, upload_to=hsreplaynet.uploads.models. _generate_descriptor_path)), ('user_agent', models.CharField(blank=True, max_length=100)), ('log_stream_name', models.CharField(blank=True, max_length=64)), ('log_group_name', models.CharField(blank=True, max_length=64)), ('updated', models.DateTimeField(auto_now=True)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('uploads', '0005_auto_20170122_1955'), ] operations = [ migrations.RemoveField( model_name='redshiftstagingtracktable', name='deduplication_complete', ), migrations.RemoveField( model_name='redshiftstagingtracktable', name='duplicates_removed', ), migrations.RemoveField( model_name='redshiftstagingtracktable', name='insert_count', ), migrations.RemoveField( model_name='redshiftstagingtracktable', name='insert_duration_seconds', ), migrations.AddField( model_name='redshiftstagingtrack', name='close_requested', field=models.BooleanField(default=False), ), migrations.AddField( model_name='redshiftstagingtrack', name='deduplicating_ended_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='deduplicating_started_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='gathering_stats_ended_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='gathering_stats_started_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='stage', field=django_intenum.IntEnumField( choices=[(0, 'ERROR'), (1, 'CREATED'), (2, 'INITIALIZING'), (3, 'INITIALIZED'), (4, 'ACTIVE'), (5, 'IN_QUIESCENCE'), (6, 'READY_TO_LOAD'), (7, 'GATHERING_STATS'), (8, 'GATHERING_STATS_COMPLETE'), (9, 'DEDUPLICATING'), (10, 'DEDUPLICATION_COMPLETE'), (11, 'INSERTING'), (12, 'INSERT_COMPLETE'), (13, 'VACUUMING'), (14, 'VACUUM_COMPLETE'), (15, 'ANALYZING'), (16, 'ANALYZE_COMPLETE'), (17, 'CLEANING_UP'), (18, 'FINISHED')], default=1, validators=[ django_intenum.IntEnumValidator( hsreplaynet.uploads.models.RedshiftETLStage) ]), ), migrations.AddField( model_name='redshiftstagingtracktable', name='analyze_query_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='dedupe_query_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='deduplication_ended_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='deduplication_started_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='gathering_stats_ended_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='gathering_stats_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='gathering_stats_started_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='insert_query_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='stage', field=django_intenum.IntEnumField( choices=[(0, 'ERROR'), (1, 'CREATED'), (2, 'INITIALIZING'), (3, 'INITIALIZED'), (4, 'ACTIVE'), (5, 'IN_QUIESCENCE'), (6, 'READY_TO_LOAD'), (7, 'GATHERING_STATS'), (8, 'GATHERING_STATS_COMPLETE'), (9, 'DEDUPLICATING'), (10, 'DEDUPLICATION_COMPLETE'), (11, 'INSERTING'), (12, 'INSERT_COMPLETE'), (13, 'VACUUMING'), (14, 'VACUUM_COMPLETE'), (15, 'ANALYZING'), (16, 'ANALYZE_COMPLETE'), (17, 'CLEANING_UP'), (18, 'FINISHED')], default=1, validators=[ django_intenum.IntEnumValidator( hsreplaynet.uploads.models.RedshiftETLStage) ]), ), migrations.AddField( model_name='redshiftstagingtracktable', name='vacuum_query_handle', field=models.CharField(blank=True, max_length=15), ), ]
class Migration(migrations.Migration): dependencies = [ ('uploads', '0005_auto_20170122_1955'), ] operations = [ migrations.RemoveField( model_name='redshiftstagingtracktable', name='deduplication_complete', ), migrations.RemoveField( model_name='redshiftstagingtracktable', name='duplicates_removed', ), migrations.RemoveField( model_name='redshiftstagingtracktable', name='insert_count', ), migrations.RemoveField( model_name='redshiftstagingtracktable', name='insert_duration_seconds', ), migrations.AddField( model_name='redshiftstagingtrack', name='close_requested', field=models.BooleanField(default=False), ), migrations.AddField( model_name='redshiftstagingtrack', name='deduplicating_ended_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='deduplicating_started_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='gathering_stats_ended_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='gathering_stats_started_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='stage', field=django_intenum.IntEnumField( default=1, enum=hsreplaynet.uploads.models.RedshiftETLStage), ), migrations.AddField( model_name='redshiftstagingtracktable', name='analyze_query_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='dedupe_query_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='deduplication_ended_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='deduplication_started_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='gathering_stats_ended_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='gathering_stats_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='gathering_stats_started_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='insert_query_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='stage', field=django_intenum.IntEnumField( default=1, enum=hsreplaynet.uploads.models.RedshiftETLStage), ), migrations.AddField( model_name='redshiftstagingtracktable', name='vacuum_query_handle', field=models.CharField(blank=True, max_length=15), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('djstripe', '0001_initial'), ] operations = [ migrations.CreateModel( name='Feature', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ('description', models.TextField(blank=True)), ('created', models.DateTimeField(auto_now_add=True)), ('status', django_intenum.IntEnumField( default=0, enum=hsreplaynet.features.models.FeatureStatus)), ('read_only', models.BooleanField(default=False)), ('rollout_percent', models.PositiveIntegerField( default=100, help_text= 'This may be set to a value lower than 100 to further restrict the user pool with access to this feature.', validators=[ django.core.validators.MaxValueValidator(100) ])), ], ), migrations.CreateModel( name='FeatureInvite', fields=[ ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('use_count', models.PositiveIntegerField( default=0, editable=False, help_text= 'The amount of times this invitation has been successfully used.' )), ('max_uses', models.PositiveIntegerField(default=0, help_text='0 for unlimited')), ('expires', models.DateTimeField( blank=True, help_text='No longer valid after this date.', null=True)), ('coupon', models.CharField(blank=True, help_text='Redeem a Stripe Coupon', max_length=500)), ('description', models.TextField(blank=True)), ('created', models.DateTimeField(auto_now_add=True)), ('modified', models.DateTimeField(auto_now=True)), ('features', models.ManyToManyField(blank=True, related_name='invites', to='features.Feature')), ('subscribe_to', models.ForeignKey( blank=True, help_text='Auto subscribe to this Stripe Plan', null=True, on_delete=django.db.models.deletion.SET_NULL, to='djstripe.Plan')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Archetype', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(blank=True, max_length=250)), ('player_class', django_intenum.IntEnumField(choices=[(0, 'INVALID'), (1, 'DEATHKNIGHT'), (2, 'DRUID'), (3, 'HUNTER'), (4, 'MAGE'), (5, 'PALADIN'), (6, 'PRIEST'), (7, 'ROGUE'), (8, 'SHAMAN'), (9, 'WARLOCK'), (10, 'WARRIOR'), (11, 'DREAM'), (12, 'NEUTRAL')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.CardClass)])), ], ), migrations.CreateModel( name='CanonicalDeck', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('created', models.DateTimeField(auto_now_add=True)), ('format', django_intenum.IntEnumField(choices=[(0, 'FT_UNKNOWN'), (1, 'FT_WILD'), (2, 'FT_STANDARD')], default=2, validators=[django_intenum.IntEnumValidator(hearthstone.enums.FormatType)])), ('archetype', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='canonical_decks', to='cards.Archetype')), ], ), migrations.CreateModel( name='Card', fields=[ ('id', models.CharField(max_length=50, primary_key=True, serialize=False)), ('dbf_id', models.IntegerField(db_index=True, null=True, unique=True)), ('name', models.CharField(max_length=50)), ('description', models.TextField(blank=True)), ('flavortext', models.TextField(blank=True)), ('how_to_earn', models.TextField(blank=True)), ('how_to_earn_golden', models.TextField(blank=True)), ('artist', models.CharField(blank=True, max_length=255)), ('card_class', django_intenum.IntEnumField(choices=[(0, 'INVALID'), (1, 'DEATHKNIGHT'), (2, 'DRUID'), (3, 'HUNTER'), (4, 'MAGE'), (5, 'PALADIN'), (6, 'PRIEST'), (7, 'ROGUE'), (8, 'SHAMAN'), (9, 'WARLOCK'), (10, 'WARRIOR'), (11, 'DREAM'), (12, 'NEUTRAL')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.CardClass)])), ('card_set', django_intenum.IntEnumField(choices=[(0, 'INVALID'), (1, 'TEST_TEMPORARY'), (2, 'CORE'), (3, 'EXPERT1'), (4, 'REWARD'), (5, 'MISSIONS'), (6, 'DEMO'), (7, 'NONE'), (8, 'CHEAT'), (9, 'BLANK'), (10, 'DEBUG_SP'), (11, 'PROMO'), (12, 'NAXX'), (13, 'GVG'), (14, 'BRM'), (15, 'TGT'), (16, 'CREDITS'), (17, 'HERO_SKINS'), (18, 'TB'), (19, 'SLUSH'), (20, 'LOE'), (21, 'OG'), (22, 'OG_RESERVE'), (23, 'KARA'), (24, 'KARA_RESERVE')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.CardSet)])), ('faction', django_intenum.IntEnumField(choices=[(0, 'INVALID'), (1, 'HORDE'), (2, 'ALLIANCE'), (3, 'NEUTRAL')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.Faction)])), ('race', django_intenum.IntEnumField(choices=[(0, 'INVALID'), (1, 'BLOODELF'), (2, 'DRAENEI'), (3, 'DWARF'), (4, 'GNOME'), (5, 'GOBLIN'), (6, 'HUMAN'), (7, 'NIGHTELF'), (8, 'ORC'), (9, 'TAUREN'), (10, 'TROLL'), (11, 'UNDEAD'), (12, 'WORGEN'), (13, 'GOBLIN2'), (14, 'MURLOC'), (15, 'DEMON'), (16, 'SCOURGE'), (17, 'MECHANICAL'), (18, 'ELEMENTAL'), (19, 'OGRE'), (20, 'BEAST'), (21, 'TOTEM'), (22, 'NERUBIAN'), (23, 'PIRATE'), (24, 'DRAGON')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.Race)])), ('rarity', django_intenum.IntEnumField(choices=[(0, 'INVALID'), (1, 'COMMON'), (2, 'FREE'), (3, 'RARE'), (4, 'EPIC'), (5, 'LEGENDARY'), (6, 'UNKNOWN_6')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.Rarity)])), ('type', django_intenum.IntEnumField(choices=[(0, 'INVALID'), (1, 'GAME'), (2, 'PLAYER'), (3, 'HERO'), (4, 'MINION'), (5, 'SPELL'), (6, 'ENCHANTMENT'), (7, 'WEAPON'), (8, 'ITEM'), (9, 'TOKEN'), (10, 'HERO_POWER')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.CardType)])), ('collectible', models.BooleanField(default=False)), ('battlecry', models.BooleanField(default=False)), ('divine_shield', models.BooleanField(default=False)), ('deathrattle', models.BooleanField(default=False)), ('elite', models.BooleanField(default=False)), ('evil_glow', models.BooleanField(default=False)), ('inspire', models.BooleanField(default=False)), ('forgetful', models.BooleanField(default=False)), ('one_turn_effect', models.BooleanField(default=False)), ('poisonous', models.BooleanField(default=False)), ('ritual', models.BooleanField(default=False)), ('secret', models.BooleanField(default=False)), ('taunt', models.BooleanField(default=False)), ('topdeck', models.BooleanField(default=False)), ('atk', models.IntegerField(default=0)), ('health', models.IntegerField(default=0)), ('durability', models.IntegerField(default=0)), ('cost', models.IntegerField(default=0)), ('windfury', models.IntegerField(default=0)), ('spare_part', models.BooleanField(default=False)), ('overload', models.IntegerField(default=0)), ('spell_damage', models.IntegerField(default=0)), ('craftable', models.BooleanField(default=False)), ], options={ 'db_table': 'card', }, ), migrations.CreateModel( name='Deck', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('digest', models.CharField(max_length=32, unique=True)), ('created', models.DateTimeField(auto_now_add=True, null=True)), ('size', models.IntegerField(null=True)), ('archetype', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='cards.Archetype')), ], ), migrations.CreateModel( name='Include', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('count', models.IntegerField(default=1)), ('card', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='included_in', to='cards.Card')), ('deck', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='includes', to='cards.Deck')), ], ), migrations.AddField( model_name='deck', name='cards', field=models.ManyToManyField(through='cards.Include', to='cards.Card'), ), migrations.AddField( model_name='canonicaldeck', name='deck', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='canonical_for_archetypes', to='cards.Deck'), ), migrations.AlterUniqueTogether( name='include', unique_together=set([('deck', 'card')]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Adventure', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('note_desc', models.CharField(max_length=64)), ('name', models.CharField(max_length=64)), ('sort_order', models.PositiveIntegerField(default=0)), ('leaving_soon', models.BooleanField(default=False)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('build', models.PositiveIntegerField()), ], ), migrations.CreateModel( name='Scenario', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('note_desc', models.CharField(max_length=64)), ('players', models.PositiveSmallIntegerField()), ('player1_hero_card_id', models.IntegerField(null=True)), ('player2_hero_card_id', models.IntegerField(null=True)), ('is_tutorial', models.BooleanField(default=False)), ('is_expert', models.BooleanField(default=False)), ('is_coop', models.BooleanField(default=False)), ('sort_order', models.PositiveIntegerField(default=0)), ('mode', django_intenum.IntEnumField( choices=[(1, 'NORMAL'), (2, 'EXPERT'), (3, 'HEROIC'), (4, 'CLASS_CHALLENGE')], default=0, validators=[ django_intenum.IntEnumValidator( hsreplaynet.scenarios.models.AdventureMode) ])), ('client_player2_hero_card_id', models.IntegerField(null=True)), ('name', models.CharField(max_length=64)), ('description', models.TextField()), ('opponent_name', models.CharField(max_length=64)), ('completed_description', models.TextField()), ('player1_deck_id', models.IntegerField(null=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('build', models.PositiveIntegerField()), ('adventure', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='scenarios.Adventure')), ], ), migrations.CreateModel( name='Wing', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('note_desc', models.CharField(max_length=64)), ('sort_order', models.PositiveIntegerField()), ('release', models.CharField(max_length=16)), ('required_event', models.CharField(max_length=16)), ('name', models.CharField(max_length=64)), ('coming_soon_label', models.CharField(max_length=64)), ('requires_label', models.CharField(max_length=64)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('build', models.PositiveIntegerField()), ('adventure', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='scenarios.Adventure')), ('ownership_prereq_wing', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='scenarios.Wing')), ], ), migrations.AddField( model_name='scenario', name='wing', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='scenarios.Wing'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ("accounts", "0001_initial"), ("decks", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ("cards", "0001_initial"), ] operations = [ migrations.CreateModel( name="GameReplay", fields=[ ("id", models.BigAutoField(primary_key=True, serialize=False)), ("shortid", hsreplaynet.utils.fields.ShortUUIDField(blank=True, editable=False, max_length=22, unique=True, verbose_name="Short ID")), ("friendly_player_id", hsreplaynet.utils.fields.PlayerIDField(choices=[(1, 1), (2, 2)], help_text="PlayerID of the friendly player (1 or 2)", null=True, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(2)], verbose_name="Friendly PlayerID")), ("spectator_mode", models.BooleanField(default=False)), ("spectator_password", models.CharField(blank=True, max_length=16, verbose_name="Spectator Password")), ("client_handle", models.IntegerField(blank=True, null=True)), ("aurora_password", models.CharField(blank=True, max_length=16)), ("build", models.PositiveIntegerField(blank=True, null=True, verbose_name="Hearthstone Build")), ("replay_xml", models.FileField(upload_to=hsreplaynet.games.models.generate_upload_path)), ("hsreplay_version", models.CharField(help_text="The HSReplay library version used to generate the replay", max_length=16, verbose_name="HSReplay library version")), ("hslog_version", models.CharField(help_text="The python-hearthstone library version at processing", max_length=24, null=True, verbose_name="hslog library version")), ("upload_ip", models.GenericIPAddressField(help_text="Uploader IP address", null=True)), ("user_agent", models.CharField(help_text="Uploader User-Agent", max_length=100, null=True)), ("is_deleted", models.BooleanField(default=False, help_text="Indicates user request to delete the upload", verbose_name="Soft deleted")), ("won", models.NullBooleanField()), ("disconnected", models.BooleanField(default=False)), ("reconnecting", models.BooleanField(default=False, help_text="Whether the player is reconnecting to an existing game", verbose_name="Is reconnecting")), ("resumable", models.NullBooleanField()), ("visibility", django_intenum.IntEnumField(default=1, enum=hearthsim.identity.accounts.models.Visibility)), ("hide_player_names", models.BooleanField(default=False)), ("views", models.PositiveIntegerField(default=0)), ], options={ "ordering": ("-id",), }, ), migrations.CreateModel( name="GlobalGame", fields=[ ("id", models.BigAutoField(primary_key=True, serialize=False)), ("game_handle", models.IntegerField(blank=True, help_text="Game ID on the Battle.net server", null=True, verbose_name="Game handle")), ("server_address", models.GenericIPAddressField(blank=True, null=True)), ("server_port", models.IntegerField(blank=True, null=True)), ("server_version", models.IntegerField(blank=True, null=True)), ("build", models.PositiveIntegerField(blank=True, help_text="Hearthstone build number the game was played on.", null=True)), ("match_start", models.DateTimeField(db_index=True, null=True)), ("match_end", models.DateTimeField(null=True)), ("game_type", django_intenum.IntEnumField(blank=True, null=True, enum=hearthstone.enums.BnetGameType, verbose_name="Game type")), ("format", django_intenum.IntEnumField(default=0, enum=hearthstone.enums.FormatType, verbose_name="Format type")), ("ladder_season", models.IntegerField(blank=True, help_text="The season as calculated from the match start timestamp.", null=True, verbose_name="Ladder season")), ("brawl_season", models.IntegerField(default=0, help_text="The brawl season which increments every time the brawl changes.", verbose_name="Tavern Brawl season")), ("scenario_id", models.IntegerField(blank=True, db_index=True, help_text="ID from DBF/SCENARIO.xml or Scenario cache", null=True, verbose_name="Scenario ID")), ("num_turns", models.IntegerField(blank=True, null=True)), ("num_entities", models.IntegerField(blank=True, null=True)), ("tainted_decks", models.NullBooleanField()), ("digest", models.CharField(help_text="SHA1 of str(game_handle), str(server_address), str(lo1), str(lo2)", max_length=40, null=True, unique=True)), ("loaded_into_redshift", models.DateTimeField(null=True)), ], options={ "ordering": ("-match_start",), }, ), migrations.CreateModel( name="GlobalGamePlayer", fields=[ ("id", models.BigAutoField(primary_key=True, serialize=False)), ("name", models.CharField(blank=True, db_index=True, max_length=64, verbose_name="Player name")), ("player_id", hsreplaynet.utils.fields.PlayerIDField(blank=True, choices=[(1, 1), (2, 2)], validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(2)])), ("is_ai", models.BooleanField(default=False, help_text="Whether the player is an AI.", verbose_name="Is AI")), ("is_first", models.BooleanField(help_text="Whether the player is the first player", verbose_name="Is first player")), ("hero_premium", models.BooleanField(default=False, help_text="Whether the player's initial hero is golden.", verbose_name="Hero Premium")), ("final_state", django_intenum.IntEnumField(default=0, enum=hearthstone.enums.PlayState, verbose_name="Final State")), ("extra_turns", models.SmallIntegerField(help_text="Extra turns taken by the player this game (Time Warp).", null=True)), ("rank", models.SmallIntegerField(blank=True, help_text="1 through 25, or 0 for legend.", null=True, verbose_name="Rank")), ("legend_rank", models.PositiveIntegerField(blank=True, null=True)), ("stars", models.PositiveSmallIntegerField(blank=True, null=True)), ("wins", models.PositiveIntegerField(blank=True, help_text="Number of wins in the current game mode (eg. ladder season, arena key...)", null=True, verbose_name="Wins")), ("losses", models.PositiveIntegerField(blank=True, help_text="Number of losses in the current game mode (current season)", null=True, verbose_name="Losses")), ("deck_id", models.BigIntegerField(blank=True, null=True, verbose_name="Deck ID")), ("cardback_id", models.IntegerField(blank=True, null=True, verbose_name="Cardback ID")), ("deck_list", models.ForeignKey(help_text="As much as is known of the player's starting deck list.", on_delete=django.db.models.deletion.PROTECT, to="decks.Deck")), ("game", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="players", to="games.GlobalGame")), ("hero", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to="cards.Card", to_field="card_id")), ("pegasus_account", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to="accounts.BlizzardAccount")), ], ), migrations.CreateModel( name="ReplayAlias", fields=[ ("id", models.BigAutoField(primary_key=True, serialize=False)), ("shortid", hsreplaynet.utils.fields.ShortUUIDField(blank=True, editable=False, max_length=22, unique=True, verbose_name="Short ID")), ("replay", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="aliases", to="games.GameReplay")), ], ), migrations.AddField( model_name="gamereplay", name="global_game", field=models.ForeignKey(help_text="References the single global game that this replay shows.", on_delete=django.db.models.deletion.CASCADE, related_name="replays", to="games.GlobalGame"), ), migrations.AddField( model_name="gamereplay", name="opponent_revealed_deck", field=models.ForeignKey(help_text="As much as is known of the opponent's starting deck list.", null=True, on_delete=django.db.models.deletion.PROTECT, to="decks.Deck"), ), migrations.AddField( model_name="gamereplay", name="upload_token", field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="replays", to="accounts.AuthToken"), ), migrations.AddField( model_name="gamereplay", name="user", field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="replays", to=settings.AUTH_USER_MODEL), ), migrations.AlterUniqueTogether( name="globalgameplayer", unique_together=set([("game", "player_id")]), ), migrations.AlterUniqueTogether( name="gamereplay", unique_together=set([("global_game", "client_handle", "friendly_player_id", "spectator_mode", "reconnecting")]), ), ]
class Migration(migrations.Migration): dependencies = [ ("cards", "0001_initial"), ] operations = [ migrations.CreateModel( name="CardString", fields=[ ("id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" )), ("locale", django_intenum.IntEnumField(db_index=True, enum=hearthstone.enums.Locale)), ("game_tag", django_intenum.IntEnumField( db_index=True, enum=hearthstone.enums.GameTag )), ("value", models.TextField(blank=True)), ], ), migrations.CreateModel( name="CardTag", fields=[ ("id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" )), ("game_tag", django_intenum.IntEnumField( db_index=True, enum=hearthstone.enums.GameTag )), ("value", models.PositiveIntegerField()), ], ), migrations.AlterField( model_name="card", name="card_class", field=django_intenum.IntEnumField(default=0, enum=hearthstone.enums.CardClass), ), migrations.AlterField( model_name="card", name="card_set", field=django_intenum.IntEnumField(default=0, enum=hearthstone.enums.CardSet), ), migrations.AlterField( model_name="card", name="faction", field=django_intenum.IntEnumField(default=0, enum=hearthstone.enums.Faction), ), migrations.AlterField( model_name="card", name="race", field=django_intenum.IntEnumField(default=0, enum=hearthstone.enums.Race), ), migrations.AlterField( model_name="card", name="rarity", field=django_intenum.IntEnumField(default=0, enum=hearthstone.enums.Rarity), ), migrations.AlterField( model_name="card", name="type", field=django_intenum.IntEnumField(default=0, enum=hearthstone.enums.CardType), ), migrations.AddField( model_name="cardtag", name="card", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="tags", to="cards.Card", to_field="dbf_id", db_column="card_dbf_id" ), ), migrations.AddField( model_name="cardstring", name="card", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="strings", to="cards.Card", to_field="dbf_id", db_column="card_dbf_id" ), ), ]
class Migration(migrations.Migration): dependencies = [ ('uploads', '0006_auto_20170125_2001'), ] operations = [ migrations.AddField( model_name='redshiftstagingtrack', name='refreshing_view_end_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtrack', name='refreshing_view_start_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='is_materialized_view', field=models.BooleanField(default=False), ), migrations.AddField( model_name='redshiftstagingtracktable', name='refreshing_view_end_at', field=models.DateTimeField(null=True), ), migrations.AddField( model_name='redshiftstagingtracktable', name='refreshing_view_handle', field=models.CharField(blank=True, max_length=15), ), migrations.AddField( model_name='redshiftstagingtracktable', name='refreshing_view_start_at', field=models.DateTimeField(null=True), ), migrations.AlterField( model_name='redshiftstagingtrack', name='stage', field=django_intenum.IntEnumField( choices=[(0, 'ERROR'), (1, 'CREATED'), (2, 'INITIALIZING'), (3, 'INITIALIZED'), (4, 'ACTIVE'), (5, 'IN_QUIESCENCE'), (6, 'READY_TO_LOAD'), (7, 'GATHERING_STATS'), (8, 'GATHERING_STATS_COMPLETE'), (9, 'DEDUPLICATING'), (10, 'DEDUPLICATION_COMPLETE'), (11, 'INSERTING'), (12, 'INSERT_COMPLETE'), (13, 'REFRESHING_MATERIALIZED_VIEWS'), (14, 'REFRESHING_MATERIALIZED_VIEWS_COMPLETE'), (15, 'VACUUMING'), (16, 'VACUUM_COMPLETE'), (17, 'ANALYZING'), (18, 'ANALYZE_COMPLETE'), (19, 'CLEANING_UP'), (20, 'FINISHED')], default=1, validators=[ django_intenum.IntEnumValidator( hsreplaynet.uploads.models.RedshiftETLStage) ]), ), migrations.AlterField( model_name='redshiftstagingtracktable', name='stage', field=django_intenum.IntEnumField( choices=[(0, 'ERROR'), (1, 'CREATED'), (2, 'INITIALIZING'), (3, 'INITIALIZED'), (4, 'ACTIVE'), (5, 'IN_QUIESCENCE'), (6, 'READY_TO_LOAD'), (7, 'GATHERING_STATS'), (8, 'GATHERING_STATS_COMPLETE'), (9, 'DEDUPLICATING'), (10, 'DEDUPLICATION_COMPLETE'), (11, 'INSERTING'), (12, 'INSERT_COMPLETE'), (13, 'REFRESHING_MATERIALIZED_VIEWS'), (14, 'REFRESHING_MATERIALIZED_VIEWS_COMPLETE'), (15, 'VACUUMING'), (16, 'VACUUM_COMPLETE'), (17, 'ANALYZING'), (18, 'ANALYZE_COMPLETE'), (19, 'CLEANING_UP'), (20, 'FINISHED')], default=1, validators=[ django_intenum.IntEnumValidator( hsreplaynet.uploads.models.RedshiftETLStage) ]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('cards', '0001_initial'), ] operations = [ migrations.CreateModel( name='Archetype', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(blank=True, max_length=250)), ('player_class', django_intenum.IntEnumField( choices=[(0, 'INVALID'), (1, 'DEATHKNIGHT'), (2, 'DRUID'), (3, 'HUNTER'), (4, 'MAGE'), (5, 'PALADIN'), (6, 'PRIEST'), (7, 'ROGUE'), (8, 'SHAMAN'), (9, 'WARLOCK'), (10, 'WARRIOR'), (11, 'DREAM'), (12, 'NEUTRAL')], default=0, validators=[ django_intenum.IntEnumValidator( hearthstone.enums.CardClass) ])), ], options={ 'db_table': 'cards_archetype', }, ), migrations.CreateModel( name='CanonicalDeck', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('created', models.DateTimeField(auto_now_add=True)), ('format', django_intenum.IntEnumField( choices=[(0, 'FT_UNKNOWN'), (1, 'FT_WILD'), (2, 'FT_STANDARD')], default=2, validators=[ django_intenum.IntEnumValidator( hearthstone.enums.FormatType) ])), ('archetype', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='canonical_decks', to='decks.Archetype')), ], options={ 'db_table': 'cards_canonicaldeck', }, ), migrations.CreateModel( name='Deck', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('digest', models.CharField(max_length=32, unique=True)), ('created', models.DateTimeField(auto_now_add=True, null=True)), ('size', models.IntegerField(null=True)), ('archetype', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='decks.Archetype')), ], options={ 'db_table': 'cards_deck', }, ), migrations.CreateModel( name='Include', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('count', models.IntegerField(default=1)), ('card', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='included_in', to='cards.Card')), ('deck', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='includes', to='decks.Deck')), ], options={ 'db_table': 'cards_include', }, ), migrations.CreateModel( name='Signature', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('format', django_intenum.IntEnumField( choices=[(0, 'FT_UNKNOWN'), (1, 'FT_WILD'), (2, 'FT_STANDARD')], default=2, validators=[ django_intenum.IntEnumValidator( hearthstone.enums.FormatType) ])), ('as_of', models.DateTimeField()), ('archetype', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='decks.Archetype')), ], ), migrations.CreateModel( name='SignatureComponent', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('weight', models.FloatField(default=0.0)), ('card', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='signature_components', to='cards.Card')), ('signature', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='components', to='decks.Signature')), ], ), migrations.AddField( model_name='deck', name='cards', field=models.ManyToManyField(through='decks.Include', to='cards.Card'), ), migrations.AddField( model_name='canonicaldeck', name='deck', field=models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name='canonical_for_archetypes', to='decks.Deck'), ), migrations.AlterUniqueTogether( name='include', unique_together=set([('deck', 'card')]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="Card", fields=[ ("card_id", models.CharField(max_length=50, primary_key=True, serialize=False)), ("dbf_id", models.IntegerField(db_index=True, null=True, unique=True)), ("name", models.CharField(max_length=50)), ("description", models.TextField(blank=True)), ("flavortext", models.TextField(blank=True)), ("how_to_earn", models.TextField(blank=True)), ("how_to_earn_golden", models.TextField(blank=True)), ("artist", models.CharField(blank=True, max_length=255)), ("card_class", django_intenum.IntEnumField( default=0, enum=hearthstone.enums.CardClass)), ("card_set", django_intenum.IntEnumField(default=0, enum=hearthstone.enums.CardSet)), ("faction", django_intenum.IntEnumField(default=0, enum=hearthstone.enums.Faction)), ("race", django_intenum.IntEnumField(default=0, enum=hearthstone.enums.Race)), ("rarity", django_intenum.IntEnumField(default=0, enum=hearthstone.enums.Rarity)), ("type", django_intenum.IntEnumField(default=0, enum=hearthstone.enums.CardType)), ("collectible", models.BooleanField(default=False)), ("battlecry", models.BooleanField(default=False)), ("divine_shield", models.BooleanField(default=False)), ("deathrattle", models.BooleanField(default=False)), ("elite", models.BooleanField(default=False)), ("evil_glow", models.BooleanField(default=False)), ("inspire", models.BooleanField(default=False)), ("forgetful", models.BooleanField(default=False)), ("one_turn_effect", models.BooleanField(default=False)), ("poisonous", models.BooleanField(default=False)), ("ritual", models.BooleanField(default=False)), ("secret", models.BooleanField(default=False)), ("taunt", models.BooleanField(default=False)), ("topdeck", models.BooleanField(default=False)), ("atk", models.IntegerField(default=0)), ("health", models.IntegerField(default=0)), ("durability", models.IntegerField(default=0)), ("cost", models.IntegerField(default=0)), ("windfury", models.IntegerField(default=0)), ("spare_part", models.BooleanField(default=False)), ("overload", models.IntegerField(default=0)), ("spell_damage", models.IntegerField(default=0)), ("craftable", models.BooleanField(default=False)), ], options={ "db_table": "card", }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('cards', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('api', '0001_initial'), ] operations = [ migrations.CreateModel( name='GameReplay', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('shortid', hsreplaynet.utils.fields.ShortUUIDField(blank=True, editable=False, max_length=22, unique=True, verbose_name='Short ID')), ('friendly_player_id', hsreplaynet.utils.fields.PlayerIDField(choices=[(1, 1), (2, 2)], help_text='PlayerID of the friendly player (1 or 2)', null=True, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(2)], verbose_name='Friendly PlayerID')), ('spectator_mode', models.BooleanField(default=False)), ('spectator_password', models.CharField(blank=True, max_length=16, verbose_name='Spectator Password')), ('client_handle', models.IntegerField(blank=True, null=True)), ('aurora_password', models.CharField(blank=True, max_length=16)), ('build', models.PositiveIntegerField(blank=True, null=True, verbose_name='Hearthstone Build')), ('replay_xml', models.FileField(upload_to=hsreplaynet.games.models.generate_upload_path)), ('hsreplay_version', models.CharField(help_text='The HSReplay library version used to generate the replay', max_length=16, verbose_name='HSReplay library version')), ('hslog_version', models.CharField(help_text='The python-hearthstone library version at processing', max_length=24, null=True, verbose_name='hslog library version')), ('is_deleted', models.BooleanField(default=False, help_text='Indicates user request to delete the upload', verbose_name='Soft deleted')), ('won', models.NullBooleanField()), ('disconnected', models.BooleanField(default=False)), ('reconnecting', models.BooleanField(default=False, help_text='Whether the player is reconnecting to an existing game', verbose_name='Is reconnecting')), ('resumable', models.NullBooleanField()), ('visibility', django_intenum.IntEnumField(choices=[(1, 'Public'), (2, 'Unlisted')], default=1, validators=[django_intenum.IntEnumValidator(hsreplaynet.games.models.Visibility)])), ('hide_player_names', models.BooleanField(default=False)), ('views', models.PositiveIntegerField(default=0)), ], options={ 'ordering': ('global_game',), }, ), migrations.CreateModel( name='GlobalGame', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('game_handle', models.IntegerField(blank=True, help_text='Game ID on the Battle.net server', null=True, verbose_name='Game handle')), ('server_address', models.GenericIPAddressField(blank=True, null=True)), ('server_port', models.IntegerField(blank=True, null=True)), ('server_version', models.IntegerField(blank=True, null=True)), ('build', models.PositiveIntegerField(blank=True, help_text='Hearthstone build number the game was played on.', null=True)), ('match_start', models.DateTimeField(db_index=True, null=True)), ('match_end', models.DateTimeField(null=True)), ('game_type', django_intenum.IntEnumField(blank=True, choices=[(0, 'BGT_UNKNOWN'), (1, 'BGT_FRIENDS'), (2, 'BGT_RANKED_STANDARD'), (3, 'BGT_ARENA'), (4, 'BGT_VS_AI'), (5, 'BGT_TUTORIAL'), (6, 'BGT_ASYNC'), (9, 'BGT_NEWBIE'), (7, 'BGT_CASUAL_STANDARD'), (8, 'BGT_TEST1'), (10, 'BGT_TEST3'), (16, 'BGT_TAVERNBRAWL_PVP'), (17, 'BGT_TAVERNBRAWL_1P_VERSUS_AI'), (18, 'BGT_TAVERNBRAWL_2P_COOP'), (30, 'BGT_RANKED_WILD'), (31, 'BGT_CASUAL_WILD'), (32, 'BGT_LAST')], null=True, validators=[django_intenum.IntEnumValidator(hearthstone.enums.BnetGameType)], verbose_name='Game type')), ('format', django_intenum.IntEnumField(choices=[(0, 'FT_UNKNOWN'), (1, 'FT_WILD'), (2, 'FT_STANDARD')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.FormatType)], verbose_name='Format type')), ('ladder_season', models.IntegerField(blank=True, help_text='The season as calculated from the match start timestamp.', null=True, verbose_name='Ladder season')), ('brawl_season', models.IntegerField(default=0, help_text='The brawl season which increments every time the brawl changes.', verbose_name='Tavern Brawl season')), ('scenario_id', models.IntegerField(blank=True, db_index=True, help_text='ID from DBF/SCENARIO.xml or Scenario cache', null=True, verbose_name='Scenario ID')), ('num_turns', models.IntegerField(blank=True, null=True)), ('num_entities', models.IntegerField(blank=True, null=True)), ('digest', models.CharField(help_text='SHA1 of str(game_handle), str(server_address), str(lo1), str(lo2)', max_length=40, null=True, unique=True)), ], options={ 'ordering': ('-match_start',), }, ), migrations.CreateModel( name='GlobalGamePlayer', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(blank=True, db_index=True, max_length=64, verbose_name='Player name')), ('real_name', models.CharField(blank=True, max_length=64, verbose_name='Real name')), ('player_id', hsreplaynet.utils.fields.PlayerIDField(blank=True, choices=[(1, 1), (2, 2)], validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(2)])), ('account_hi', models.BigIntegerField(blank=True, help_text='The region value from account hilo', null=True, verbose_name='Account Hi')), ('account_lo', models.BigIntegerField(blank=True, help_text='The account ID value from account hilo', null=True, verbose_name='Account Lo')), ('is_ai', models.BooleanField(default=False, help_text='Whether the player is an AI.', verbose_name='Is AI')), ('is_first', models.BooleanField(help_text='Whether the player is the first player', verbose_name='Is first player')), ('hero_premium', models.BooleanField(default=False, help_text="Whether the player's initial hero is golden.", verbose_name='Hero Premium')), ('final_state', django_intenum.IntEnumField(choices=[(0, 'INVALID'), (1, 'PLAYING'), (2, 'WINNING'), (3, 'LOSING'), (4, 'WON'), (5, 'LOST'), (6, 'TIED'), (7, 'DISCONNECTED'), (8, 'CONCEDED')], default=0, validators=[django_intenum.IntEnumValidator(hearthstone.enums.PlayState)], verbose_name='Final State')), ('rank', models.SmallIntegerField(blank=True, help_text='1 through 25, or 0 for legend.', null=True, verbose_name='Rank')), ('legend_rank', models.PositiveIntegerField(blank=True, null=True)), ('stars', models.PositiveSmallIntegerField(blank=True, null=True)), ('wins', models.PositiveIntegerField(blank=True, help_text='Number of wins in the current game mode (eg. ladder season, arena key...)', null=True, verbose_name='Wins')), ('losses', models.PositiveIntegerField(blank=True, help_text='Number of losses in the current game mode (current season)', null=True, verbose_name='Losses')), ('deck_id', models.IntegerField(blank=True, null=True, verbose_name='Deck ID')), ('cardback_id', models.IntegerField(blank=True, null=True, verbose_name='Cardback ID')), ('deck_list', models.ForeignKey(help_text="As much as is known of the player's starting deck list.", on_delete=django.db.models.deletion.PROTECT, to='cards.Deck')), ('game', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='players', to='games.GlobalGame')), ('hero', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='cards.Card')), ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='ReplayAlias', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('shortid', hsreplaynet.utils.fields.ShortUUIDField(blank=True, editable=False, max_length=22, unique=True, verbose_name='Short ID')), ('replay', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='aliases', to='games.GameReplay')), ], ), migrations.AddField( model_name='gamereplay', name='global_game', field=models.ForeignKey(help_text='References the single global game that this replay shows.', on_delete=django.db.models.deletion.CASCADE, related_name='replays', to='games.GlobalGame'), ), migrations.AddField( model_name='gamereplay', name='opponent_revealed_deck', field=models.ForeignKey(help_text="As much as is known of the opponent's starting deck list.", null=True, on_delete=django.db.models.deletion.PROTECT, to='cards.Deck'), ), migrations.AddField( model_name='gamereplay', name='upload_token', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='replays', to='api.AuthToken'), ), migrations.AddField( model_name='gamereplay', name='user', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='replays', to=settings.AUTH_USER_MODEL), ), migrations.AlterUniqueTogether( name='globalgameplayer', unique_together=set([('game', 'player_id')]), ), migrations.AlterUniqueTogether( name='gamereplay', unique_together=set([('global_game', 'client_handle', 'friendly_player_id', 'spectator_mode', 'reconnecting')]), ), ]
class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('webhooks', '0002_webhook_secret'), ] operations = [ migrations.CreateModel( name='Event', fields=[ ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('type', models.CharField(db_index=True, max_length=50)), ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='events', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='WebhookDelivery', fields=[ ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('url', models.URLField()), ('request_headers', django.contrib.postgres.fields.jsonb.JSONField()), ('request_body', models.TextField(blank=True)), ('response_status', models.PositiveSmallIntegerField(null=True)), ('response_headers', django.contrib.postgres.fields.jsonb.JSONField(blank=True)), ('response_body', models.TextField(blank=True)), ('completed_time', models.PositiveIntegerField()), ('success', models.BooleanField()), ('error', models.TextField(blank=True)), ('traceback', models.TextField(blank=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ], ), migrations.CreateModel( name='WebhookEndpoint', fields=[ ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('url', models.URLField( help_text='The URL the webhook will POST to.', validators=[ hsreplaynet.webhooks.validators.WebhookURLValidator() ])), ('secret', models.UUIDField( default=uuid.uuid4, editable=False, help_text= 'Salt for the X-Webhook-Signature header sent with the payload' )), ('timeout', models.PositiveSmallIntegerField( default=10, help_text= 'Timeout (in seconds) the triggers have before they fail.' )), ('is_active', models.BooleanField( default=True, help_text='Whether the listener is enabled.')), ('is_deleted', models.BooleanField(default=False)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='webhook_endpoints', to=settings.AUTH_USER_MODEL)), ], ), migrations.RemoveField( model_name='webhooktrigger', name='webhook', ), migrations.RenameField( model_name='webhook', old_name='modified', new_name='updated', ), migrations.RemoveField( model_name='webhook', name='is_active', ), migrations.RemoveField( model_name='webhook', name='is_deleted', ), migrations.RemoveField( model_name='webhook', name='max_triggers', ), migrations.RemoveField( model_name='webhook', name='secret', ), migrations.RemoveField( model_name='webhook', name='timeout', ), migrations.RemoveField( model_name='webhook', name='user', ), migrations.AddField( model_name='webhook', name='payload', field=django.contrib.postgres.fields.jsonb.JSONField( default={}, encoder=django.core.serializers.json.DjangoJSONEncoder), preserve_default=False, ), migrations.AddField( model_name='webhook', name='status', field=django_intenum.IntEnumField( default=0, enum=hsreplaynet.webhooks.models.WebhookStatus), ), migrations.AlterField( model_name='webhook', name='url', field=models.URLField(), ), migrations.DeleteModel(name='WebhookTrigger', ), migrations.AddField( model_name='webhookdelivery', name='webhook', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='deliveries', to='webhooks.Webhook'), ), migrations.AddField( model_name='webhook', name='endpoint', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='webhooks', to='webhooks.WebhookEndpoint'), ), migrations.AddField( model_name='webhook', name='event', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='webhooks', to='webhooks.Event'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('cards', '0001_initial'), ] operations = [ migrations.CreateModel( name='Archetype', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('name', models.CharField(blank=True, max_length=250)), ('player_class', django_intenum.IntEnumField(default=0, enum=hearthstone.enums.CardClass)), ], options={ 'db_table': 'cards_archetype', }, ), migrations.CreateModel( name='Deck', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('digest', models.CharField(max_length=32, unique=True)), ('created', models.DateTimeField(auto_now_add=True, null=True)), ('size', models.IntegerField(null=True)), ('archetype', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='decks.Archetype')), ('guessed_full_deck', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='decks.Deck')), ], options={ 'db_table': 'cards_deck', }, ), migrations.CreateModel( name='Include', fields=[ ('id', models.BigAutoField(primary_key=True, serialize=False)), ('count', models.IntegerField(default=1)), ('card', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='included_in', to='cards.Card')), ('deck', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='includes', to='decks.Deck')), ], options={ 'db_table': 'cards_include', }, ), migrations.CreateModel( name='Signature', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('format', django_intenum.IntEnumField(default=2, enum=hearthstone.enums.FormatType)), ('as_of', models.DateTimeField()), ('archetype', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='decks.Archetype')), ], ), migrations.CreateModel( name='SignatureComponent', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('weight', models.FloatField(default=0.0)), ('card', models.ForeignKey(db_column='card_dbf_id', on_delete=django.db.models.deletion.PROTECT, related_name='signature_components', to='cards.Card', to_field='dbf_id')), ('signature', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='components', to='decks.Signature')), ], ), migrations.AddField( model_name='deck', name='cards', field=models.ManyToManyField(through='decks.Include', to='cards.Card'), ), migrations.AlterUniqueTogether( name='include', unique_together=set([('deck', 'card')]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="Adventure", fields=[ ("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("note_desc", models.CharField(max_length=64)), ("name", models.CharField(max_length=64)), ("sort_order", models.PositiveIntegerField(default=0)), ("leaving_soon", models.BooleanField(default=False)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ("build", models.PositiveIntegerField()), ], ), migrations.CreateModel( name="Scenario", fields=[ ("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("note_desc", models.CharField(max_length=64)), ("players", models.PositiveSmallIntegerField()), ("player1_hero_card_id", models.IntegerField(null=True)), ("player2_hero_card_id", models.IntegerField(null=True)), ("is_tutorial", models.BooleanField(default=False)), ("is_expert", models.BooleanField(default=False)), ("is_coop", models.BooleanField(default=False)), ("sort_order", models.PositiveIntegerField(default=0)), ("mode", django_intenum.IntEnumField( default=0, enum=django_hearthstone.scenarios.models.AdventureMode)), ("client_player2_hero_card_id", models.IntegerField(null=True)), ("name", models.CharField(max_length=64)), ("description", models.TextField()), ("opponent_name", models.CharField(max_length=64)), ("completed_description", models.TextField()), ("player1_deck_id", models.IntegerField(null=True)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ("build", models.PositiveIntegerField()), ("adventure", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="scenarios.Adventure")), ], ), migrations.CreateModel( name="Wing", fields=[ ("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), ("note_desc", models.CharField(max_length=64)), ("sort_order", models.PositiveIntegerField()), ("release", models.CharField(max_length=16)), ("required_event", models.CharField(max_length=16)), ("name", models.CharField(max_length=64)), ("coming_soon_label", models.CharField(max_length=64)), ("requires_label", models.CharField(max_length=64)), ("created", models.DateTimeField(auto_now_add=True)), ("updated", models.DateTimeField(auto_now=True)), ("build", models.PositiveIntegerField()), ("adventure", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to="scenarios.Adventure")), ("ownership_prereq_wing", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="scenarios.Wing")), ], ), migrations.AddField( model_name="scenario", name="wing", field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="scenarios.Wing"), ), ]