# Generated by Django 5.2.12 on 2026-03-10 23:27 import apps.users.services.managers import django.db.models.deletion import django.utils.timezone import uuid 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="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=150, verbose_name="first name" ), ), ( "last_name", models.CharField( blank=True, max_length=150, verbose_name="last name" ), ), ( "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.UUIDField( default=uuid.uuid7, primary_key=True, serialize=False ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ("deleted_at", models.DateTimeField(blank=True, null=True)), ("is_deleted", models.BooleanField(default=False)), ("mobile", models.CharField(max_length=11, unique=True)), ("email", models.EmailField(blank=True, default="", max_length=254)), ("description", models.TextField(blank=True, default="")), ( "profile_picture", models.ImageField( blank=True, null=True, upload_to="profile/users/" ), ), ("birth_date", models.DateField(blank=True, null=True)), ("password_updated_at", models.DateTimeField(blank=True, null=True)), ("is_verified", models.BooleanField(default=False)), ( "created_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_%(app_label)s_%(class)s_set", to=settings.AUTH_USER_MODEL, ), ), ( "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", ), ), ( "updated_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="updated_%(app_label)s_%(class)s_set", to=settings.AUTH_USER_MODEL, ), ), ( "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={ "verbose_name": "user", "verbose_name_plural": "users", "db_table": "user", "ordering": ("-updated_at", "-created_at"), }, managers=[ ("objects", apps.users.services.managers.UserManager(alive_only=True)), ], ), migrations.CreateModel( name="LoginAttempt", fields=[ ( "id", models.UUIDField( default=uuid.uuid7, primary_key=True, serialize=False ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ("deleted_at", models.DateTimeField(blank=True, null=True)), ("is_deleted", models.BooleanField(default=False)), ("is_active", models.BooleanField(default=False)), ( "status", models.PositiveSmallIntegerField( choices=[(0, "failed"), (1, "success")], default=0 ), ), ("ip_address", models.GenericIPAddressField(blank=True, null=True)), ( "created_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_%(app_label)s_%(class)s_set", to=settings.AUTH_USER_MODEL, ), ), ( "updated_by", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="updated_%(app_label)s_%(class)s_set", to=settings.AUTH_USER_MODEL, ), ), ( "user", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ], options={ "verbose_name": "login_attempts", "verbose_name_plural": "login_attempts", "db_table": "login_attempt", "ordering": ("-updated_at", "-created_at"), }, ), migrations.AddIndex( model_name="user", index=models.Index(fields=["id"], name="user_id_idx"), ), migrations.AddIndex( model_name="user", index=models.Index(fields=["mobile"], name="user_mobile_idx"), ), ]