Coverage for src/accounts/migrations/0001_initial.py: 100%
11 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-08-04 12:59 +0300
« prev ^ index » next coverage.py v7.9.2, created at 2025-08-04 12:59 +0300
1# Generated by Django 5.2.1 on 2025-07-21 16:26
3import cloudinary.models
4import django.core.validators
5import django.db.models.deletion
6import src.accounts.managers.user_credential
7import src.accounts.validators.models
8from django.conf import settings
9from django.db import migrations, models
12class Migration(migrations.Migration):
14 initial = True
16 dependencies = [
17 ('auth', '0012_alter_user_first_name_max_length'),
18 ]
20 operations = [
21 migrations.CreateModel(
22 name='UserCredential',
23 fields=[
24 (
25 'id',
26 models.BigAutoField(
27 auto_created=True,
28 primary_key=True,
29 serialize=False,
30 verbose_name='ID',
31 ),
32 ),
33 (
34 'password',
35 models.CharField(max_length=128, verbose_name='password'),
36 ),
37 (
38 'last_login',
39 models.DateTimeField(
40 blank=True, null=True, verbose_name='last login'
41 ),
42 ),
43 (
44 'is_superuser',
45 models.BooleanField(
46 default=False,
47 help_text='Designates that this user has all permissions without explicitly assigning them.',
48 verbose_name='superuser status',
49 ),
50 ),
51 (
52 'email',
53 models.EmailField(
54 error_messages={
55 'unique': 'A user with this email already exists.'
56 },
57 max_length=254,
58 unique=True,
59 ),
60 ),
61 (
62 'username',
63 models.CharField(
64 error_messages={
65 'unique': 'A user with this username already exists.'
66 },
67 max_length=150,
68 unique=True,
69 validators=[
70 src.accounts.validators.models.UsernameValidator()
71 ],
72 ),
73 ),
74 ('agreed_to_emails', models.BooleanField(default=False)),
75 ('is_active', models.BooleanField(default=True)),
76 ('is_staff', models.BooleanField(default=False)),
77 (
78 'groups',
79 models.ManyToManyField(
80 blank=True,
81 help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.',
82 related_name='user_set',
83 related_query_name='user',
84 to='auth.group',
85 verbose_name='groups',
86 ),
87 ),
88 (
89 'user_permissions',
90 models.ManyToManyField(
91 blank=True,
92 help_text='Specific permissions for this user.',
93 related_name='user_set',
94 related_query_name='user',
95 to='auth.permission',
96 verbose_name='user permissions',
97 ),
98 ),
99 ],
100 options={
101 'abstract': False,
102 },
103 managers=[
104 (
105 'objects',
106 src.accounts.managers.user_credential.UserCredentialManager(),
107 ),
108 ],
109 ),
110 migrations.CreateModel(
111 name='UserPhoto',
112 fields=[
113 (
114 'photo',
115 cloudinary.models.CloudinaryField(
116 max_length=255, null=True, verbose_name='image'
117 ),
118 ),
119 (
120 'user',
121 models.OneToOneField(
122 on_delete=django.db.models.deletion.CASCADE,
123 primary_key=True,
124 serialize=False,
125 to=settings.AUTH_USER_MODEL,
126 ),
127 ),
128 ],
129 ),
130 migrations.CreateModel(
131 name='UserProfile',
132 fields=[
133 (
134 'first_name',
135 models.CharField(
136 max_length=30,
137 null=True,
138 validators=[
139 django.core.validators.MinLengthValidator(2),
140 src.accounts.validators.models.NameValidator(),
141 ],
142 ),
143 ),
144 (
145 'last_name',
146 models.CharField(
147 max_length=30,
148 null=True,
149 validators=[
150 django.core.validators.MinLengthValidator(2),
151 src.accounts.validators.models.NameValidator(),
152 ],
153 ),
154 ),
155 (
156 'phone_number',
157 models.CharField(
158 max_length=15,
159 null=True,
160 validators=[
161 django.core.validators.MinLengthValidator(9),
162 src.accounts.validators.models.OnlyDigitsValidator(),
163 ],
164 ),
165 ),
166 (
167 'country',
168 models.CharField(
169 max_length=100,
170 null=True,
171 validators=[
172 django.core.validators.MinLengthValidator(2),
173 src.accounts.validators.models.NameValidator(),
174 ],
175 ),
176 ),
177 (
178 'city',
179 models.CharField(
180 max_length=100,
181 null=True,
182 validators=[
183 django.core.validators.MinLengthValidator(2),
184 src.accounts.validators.models.NameValidator(),
185 ],
186 ),
187 ),
188 (
189 'zip_code',
190 models.CharField(
191 max_length=10,
192 null=True,
193 validators=[
194 django.core.validators.MinLengthValidator(3)
195 ],
196 ),
197 ),
198 (
199 'street_address',
200 models.CharField(
201 max_length=100,
202 null=True,
203 validators=[
204 django.core.validators.MinLengthValidator(2)
205 ],
206 ),
207 ),
208 (
209 'apartment',
210 models.CharField(blank=True, max_length=20, null=True),
211 ),
212 (
213 'user',
214 models.OneToOneField(
215 on_delete=django.db.models.deletion.CASCADE,
216 primary_key=True,
217 serialize=False,
218 to=settings.AUTH_USER_MODEL,
219 ),
220 ),
221 ],
222 ),
223 ]