0001_initial.py 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. # Generated by Django 3.2.6 on 2021-12-04 01:50
  2. import datetime
  3. from django.conf import settings
  4. from django.db import migrations, models
  5. import django.db.models.deletion
  6. class Migration(migrations.Migration):
  7. initial = True
  8. dependencies = [
  9. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  10. ]
  11. operations = [
  12. migrations.CreateModel(
  13. name='Playlist',
  14. fields=[
  15. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  16. ('channel_id', models.TextField(blank=True)),
  17. ('channel_name', models.TextField(blank=True)),
  18. ('is_yt_mix', models.BooleanField(default=False)),
  19. ('playlist_id', models.CharField(max_length=150)),
  20. ('name', models.CharField(blank=True, max_length=150)),
  21. ('thumbnail_url', models.TextField(blank=True)),
  22. ('description', models.TextField(default='No description')),
  23. ('video_count', models.IntegerField(default=0)),
  24. ('published_at', models.DateTimeField(blank=True)),
  25. ('is_private_on_yt', models.BooleanField(default=False)),
  26. ('playlist_yt_player_HTML', models.TextField(blank=True)),
  27. ('playlist_duration', models.CharField(blank=True, max_length=69)),
  28. ('playlist_duration_in_seconds', models.IntegerField(default=0)),
  29. ('started_on', models.DateTimeField(auto_now_add=True, null=True)),
  30. ('last_watched', models.DateTimeField(auto_now_add=True, null=True)),
  31. ('user_notes', models.TextField(default='')),
  32. ('user_label', models.CharField(default='', max_length=100)),
  33. ('marked_as', models.CharField(default='none', max_length=100)),
  34. ('is_favorite', models.BooleanField(blank=True, default=False)),
  35. ('num_of_accesses', models.IntegerField(default='0')),
  36. ('last_accessed_on', models.DateTimeField(default=datetime.datetime.now)),
  37. ('is_user_owned', models.BooleanField(default=True)),
  38. ('auto_check_for_updates', models.BooleanField(default=False)),
  39. ('is_in_db', models.BooleanField(default=False)),
  40. ('created_at', models.DateTimeField(auto_now_add=True)),
  41. ('updated_at', models.DateTimeField(auto_now=True)),
  42. ('last_full_scan_at', models.DateTimeField(auto_now_add=True)),
  43. ('has_playlist_changed', models.BooleanField(default=False)),
  44. ('has_new_updates', models.BooleanField(default=False)),
  45. ],
  46. ),
  47. migrations.CreateModel(
  48. name='Video',
  49. fields=[
  50. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  51. ('video_id', models.CharField(max_length=100)),
  52. ('name', models.CharField(blank=True, max_length=100)),
  53. ('duration', models.CharField(blank=True, max_length=100)),
  54. ('duration_in_seconds', models.IntegerField(default=0)),
  55. ('thumbnail_url', models.TextField(blank=True)),
  56. ('published_at', models.DateTimeField(blank=True, null=True)),
  57. ('description', models.TextField(default='')),
  58. ('has_cc', models.BooleanField(blank=True, default=False, null=True)),
  59. ('liked', models.BooleanField(default=False)),
  60. ('public_stats_viewable', models.BooleanField(default=True)),
  61. ('view_count', models.IntegerField(default=0)),
  62. ('like_count', models.IntegerField(default=0)),
  63. ('dislike_count', models.IntegerField(default=0)),
  64. ('comment_count', models.IntegerField(default=0)),
  65. ('yt_player_HTML', models.TextField(blank=True)),
  66. ('channel_id', models.TextField(blank=True)),
  67. ('channel_name', models.TextField(blank=True)),
  68. ('is_unavailable_on_yt', models.BooleanField(default=False)),
  69. ('was_deleted_on_yt', models.BooleanField(default=False)),
  70. ('is_planned_to_watch', models.BooleanField(default=False)),
  71. ('is_marked_as_watched', models.BooleanField(default=False)),
  72. ('is_favorite', models.BooleanField(blank=True, default=False)),
  73. ('num_of_accesses', models.IntegerField(default=0)),
  74. ('user_label', models.CharField(blank=True, max_length=100)),
  75. ('user_notes', models.TextField(blank=True)),
  76. ('created_at', models.DateTimeField(auto_now_add=True)),
  77. ('updated_at', models.DateTimeField(auto_now=True)),
  78. ('video_details_modified', models.BooleanField(default=False)),
  79. ('video_details_modified_at', models.DateTimeField(auto_now_add=True)),
  80. ('untube_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='videos', to=settings.AUTH_USER_MODEL)),
  81. ],
  82. ),
  83. migrations.CreateModel(
  84. name='Tag',
  85. fields=[
  86. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  87. ('name', models.CharField(max_length=69)),
  88. ('times_viewed', models.IntegerField(default=0)),
  89. ('times_viewed_per_week', models.IntegerField(default=0)),
  90. ('last_views_reset', models.DateTimeField(default=datetime.datetime.now)),
  91. ('created_at', models.DateTimeField(auto_now_add=True)),
  92. ('updated_at', models.DateTimeField(auto_now=True)),
  93. ('created_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='playlist_tags', to=settings.AUTH_USER_MODEL)),
  94. ],
  95. ),
  96. migrations.CreateModel(
  97. name='PlaylistItem',
  98. fields=[
  99. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  100. ('playlist_item_id', models.CharField(max_length=100)),
  101. ('video_position', models.IntegerField(blank=True)),
  102. ('published_at', models.DateTimeField(default=datetime.datetime.now)),
  103. ('channel_id', models.CharField(max_length=250, null=True)),
  104. ('channel_name', models.CharField(max_length=250, null=True)),
  105. ('is_duplicate', models.BooleanField(default=False)),
  106. ('is_marked_as_watched', models.BooleanField(blank=True, default=False)),
  107. ('num_of_accesses', models.IntegerField(default=0)),
  108. ('created_at', models.DateTimeField(auto_now_add=True)),
  109. ('updated_at', models.DateTimeField(auto_now=True)),
  110. ('playlist', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='playlist_items', to='main.playlist')),
  111. ('video', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='main.video')),
  112. ],
  113. ),
  114. migrations.AddField(
  115. model_name='playlist',
  116. name='tags',
  117. field=models.ManyToManyField(related_name='playlists', to='main.Tag'),
  118. ),
  119. migrations.AddField(
  120. model_name='playlist',
  121. name='untube_user',
  122. field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='playlists', to=settings.AUTH_USER_MODEL),
  123. ),
  124. migrations.AddField(
  125. model_name='playlist',
  126. name='videos',
  127. field=models.ManyToManyField(related_name='playlists', to='main.Video'),
  128. ),
  129. migrations.CreateModel(
  130. name='Pin',
  131. fields=[
  132. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  133. ('kind', models.CharField(max_length=100)),
  134. ('playlist', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='main.playlist')),
  135. ('untube_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='pins', to=settings.AUTH_USER_MODEL)),
  136. ('video', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='main.video')),
  137. ],
  138. ),
  139. ]