0005_historicalusergameplaythrough_usergameplaythrough_and_more.py 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. # Generated by Django 4.1.3 on 2023-01-05 02:25
  2. from django.conf import settings
  3. import django.core.validators
  4. from django.db import migrations, models
  5. import django.db.models.deletion
  6. import django.utils.timezone
  7. import django_extensions.db.fields
  8. import simple_history.models
  9. class Migration(migrations.Migration):
  10. dependencies = [
  11. ('games', '0021_remove_game_finished_on_remove_game_started_on'),
  12. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  13. ('profiles', '0004_alter_userprofile_user_historicalusergameprogress'),
  14. ]
  15. operations = [
  16. migrations.CreateModel(
  17. name='HistoricalUserGamePlaythrough',
  18. fields=[
  19. (
  20. 'id',
  21. models.BigIntegerField(
  22. auto_created=True,
  23. blank=True,
  24. db_index=True,
  25. verbose_name='ID',
  26. ),
  27. ),
  28. (
  29. 'created',
  30. django_extensions.db.fields.CreationDateTimeField(
  31. auto_now_add=True, verbose_name='created'
  32. ),
  33. ),
  34. (
  35. 'modified',
  36. django_extensions.db.fields.ModificationDateTimeField(
  37. auto_now=True, verbose_name='modified'
  38. ),
  39. ),
  40. (
  41. 'started_ts',
  42. models.DateTimeField(
  43. blank=True, default=django.utils.timezone.now
  44. ),
  45. ),
  46. ('finished_ts', models.DateTimeField(blank=True, null=True)),
  47. (
  48. 'percent',
  49. models.IntegerField(
  50. default=0,
  51. help_text='Keeps track of how far through the game you are',
  52. validators=[
  53. django.core.validators.MaxValueValidator(100),
  54. django.core.validators.MinValueValidator(0),
  55. ],
  56. ),
  57. ),
  58. (
  59. 'history_id',
  60. models.AutoField(primary_key=True, serialize=False),
  61. ),
  62. ('history_date', models.DateTimeField(db_index=True)),
  63. (
  64. 'history_change_reason',
  65. models.CharField(max_length=100, null=True),
  66. ),
  67. (
  68. 'history_type',
  69. models.CharField(
  70. choices=[
  71. ('+', 'Created'),
  72. ('~', 'Changed'),
  73. ('-', 'Deleted'),
  74. ],
  75. max_length=1,
  76. ),
  77. ),
  78. (
  79. 'game',
  80. models.ForeignKey(
  81. blank=True,
  82. db_constraint=False,
  83. null=True,
  84. on_delete=django.db.models.deletion.DO_NOTHING,
  85. related_name='+',
  86. to='games.game',
  87. ),
  88. ),
  89. (
  90. 'history_user',
  91. models.ForeignKey(
  92. null=True,
  93. on_delete=django.db.models.deletion.SET_NULL,
  94. related_name='+',
  95. to=settings.AUTH_USER_MODEL,
  96. ),
  97. ),
  98. (
  99. 'user',
  100. models.ForeignKey(
  101. blank=True,
  102. db_constraint=False,
  103. null=True,
  104. on_delete=django.db.models.deletion.DO_NOTHING,
  105. related_name='+',
  106. to=settings.AUTH_USER_MODEL,
  107. ),
  108. ),
  109. ],
  110. options={
  111. 'verbose_name': 'historical user game playthrough',
  112. 'verbose_name_plural': 'historical user game playthroughs',
  113. 'ordering': ('-history_date', '-history_id'),
  114. 'get_latest_by': ('history_date', 'history_id'),
  115. },
  116. bases=(simple_history.models.HistoricalChanges, models.Model),
  117. ),
  118. migrations.CreateModel(
  119. name='UserGamePlaythrough',
  120. fields=[
  121. (
  122. 'id',
  123. models.BigAutoField(
  124. auto_created=True,
  125. primary_key=True,
  126. serialize=False,
  127. verbose_name='ID',
  128. ),
  129. ),
  130. (
  131. 'created',
  132. django_extensions.db.fields.CreationDateTimeField(
  133. auto_now_add=True, verbose_name='created'
  134. ),
  135. ),
  136. (
  137. 'modified',
  138. django_extensions.db.fields.ModificationDateTimeField(
  139. auto_now=True, verbose_name='modified'
  140. ),
  141. ),
  142. (
  143. 'started_ts',
  144. models.DateTimeField(
  145. blank=True, default=django.utils.timezone.now
  146. ),
  147. ),
  148. ('finished_ts', models.DateTimeField(blank=True, null=True)),
  149. (
  150. 'percent',
  151. models.IntegerField(
  152. default=0,
  153. help_text='Keeps track of how far through the game you are',
  154. validators=[
  155. django.core.validators.MaxValueValidator(100),
  156. django.core.validators.MinValueValidator(0),
  157. ],
  158. ),
  159. ),
  160. (
  161. 'game',
  162. models.ForeignKey(
  163. on_delete=django.db.models.deletion.DO_NOTHING,
  164. to='games.game',
  165. ),
  166. ),
  167. (
  168. 'user',
  169. models.ForeignKey(
  170. on_delete=django.db.models.deletion.CASCADE,
  171. to=settings.AUTH_USER_MODEL,
  172. ),
  173. ),
  174. ],
  175. options={
  176. 'ordering': ('-started_ts',),
  177. },
  178. ),
  179. migrations.CreateModel(
  180. name='UserGamePlaythroughUpdate',
  181. fields=[
  182. (
  183. 'id',
  184. models.BigAutoField(
  185. auto_created=True,
  186. primary_key=True,
  187. serialize=False,
  188. verbose_name='ID',
  189. ),
  190. ),
  191. (
  192. 'created',
  193. django_extensions.db.fields.CreationDateTimeField(
  194. auto_now_add=True, verbose_name='created'
  195. ),
  196. ),
  197. (
  198. 'modified',
  199. django_extensions.db.fields.ModificationDateTimeField(
  200. auto_now=True, verbose_name='modified'
  201. ),
  202. ),
  203. (
  204. 'percent',
  205. models.IntegerField(
  206. default=0,
  207. help_text='Keeps track of how far through the game you are',
  208. validators=[
  209. django.core.validators.MaxValueValidator(100),
  210. django.core.validators.MinValueValidator(0),
  211. ],
  212. ),
  213. ),
  214. (
  215. 'playthrough',
  216. models.ForeignKey(
  217. on_delete=django.db.models.deletion.DO_NOTHING,
  218. to='profiles.usergameplaythrough',
  219. ),
  220. ),
  221. (
  222. 'user',
  223. models.ForeignKey(
  224. on_delete=django.db.models.deletion.CASCADE,
  225. to=settings.AUTH_USER_MODEL,
  226. ),
  227. ),
  228. ],
  229. options={
  230. 'get_latest_by': 'modified',
  231. 'abstract': False,
  232. },
  233. ),
  234. migrations.RemoveField(
  235. model_name='usergameprogress',
  236. name='game',
  237. ),
  238. migrations.RemoveField(
  239. model_name='usergameprogress',
  240. name='user',
  241. ),
  242. migrations.AddField(
  243. model_name='userprofile',
  244. name='last_active',
  245. field=models.DateTimeField(blank=True, null=True),
  246. ),
  247. migrations.DeleteModel(
  248. name='HistoricalUserGameProgress',
  249. ),
  250. migrations.DeleteModel(
  251. name='UserGameProgress',
  252. ),
  253. migrations.AddConstraint(
  254. model_name='usergameplaythrough',
  255. constraint=models.CheckConstraint(
  256. check=models.Q(('finished_ts__gte', models.F('started_ts'))),
  257. name='chronology',
  258. ),
  259. ),
  260. ]