# Generated by Django 5.1.6 on 2025-03-03 02:49 import django.db.models.deletion import django.utils.timezone import labs.models.user from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0012_alter_user_first_name_max_length'), ] operations = [ migrations.CreateModel( name='LabFeedback', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('email', models.EmailField(max_length=254)), ('lab_code', models.CharField(max_length=20)), ('rating_score', models.IntegerField()), ('comment', models.CharField(blank=True, max_length=1024, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], options={ 'db_table': 'lab_feedbacks', 'managed': False, }, ), migrations.CreateModel( name='LabUsage', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('email', models.EmailField(max_length=254)), ('lab_code', models.CharField(max_length=50)), ('start_count', models.IntegerField(default=0)), ('terminate_count', models.IntegerField(default=0)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], options={ 'db_table': 'lab_usage_history', 'managed': False, }, ), migrations.CreateModel( name='UserChat', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('chat_id', models.CharField(max_length=256)), ('chat_title', models.CharField(max_length=2048)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], options={ 'db_table': 'lab_user_chats', 'managed': False, }, ), migrations.CreateModel( name='UserWorkshop', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('email', models.EmailField(max_length=254)), ('lab_group_name', models.CharField(max_length=50)), ('start_count_remains', models.IntegerField(blank=True, null=True)), ('start_begin_date', models.DateTimeField(blank=True, null=True)), ('start_end_date', models.DateTimeField(blank=True, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], options={ 'db_table': 'lab_user_permissions', 'managed': False, }, ), migrations.CreateModel( name='User', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('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')), ('email', models.EmailField(max_length=254, unique=True, 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')), ('updated_at', models.DateTimeField(auto_now=True)), ('name', models.CharField(blank=True, max_length=100, null=True)), ('credits', models.IntegerField(default=50)), ('language_code', models.CharField(default='en', max_length=2)), ('last_lab_code', models.CharField(blank=True, max_length=20, null=True)), ('last_region_name', models.CharField(blank=True, max_length=40, null=True)), ('last_tidb_version', models.CharField(blank=True, max_length=20, null=True)), ('organization', models.CharField(blank=True, max_length=100, null=True)), ('job_role', models.CharField(blank=True, max_length=60, null=True)), ('country', models.CharField(blank=True, max_length=60, null=True)), ('pingcaper_role', models.CharField(blank=True, max_length=30, null=True)), ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), ], options={ 'db_table': 'auth_user', }, managers=[ ('objects', labs.models.user.LabsUserManager()), ], ), migrations.CreateModel( name='APIKey', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('description', models.CharField(blank=True, max_length=100, null=True)), ('api_key_display', models.CharField(max_length=255)), ('hashed_api_key', models.CharField(max_length=255, unique=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'db_table': 'api_keys', }, ), ]