Coverage for src/accounts/migrations/0001_initial.py: 100%
11 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-09-21 16:24 +0300
« prev ^ index » next coverage.py v7.9.2, created at 2025-09-21 16:24 +0300
1# Generated by Django 5.2.1 on 2025-09-20 12:20
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,
117 null=True,
118 validators=[
119 src.accounts.validators.models.FileSizeValidator(5)
120 ],
121 verbose_name='image',
122 ),
123 ),
124 (
125 'user',
126 models.OneToOneField(
127 on_delete=django.db.models.deletion.CASCADE,
128 primary_key=True,
129 serialize=False,
130 to=settings.AUTH_USER_MODEL,
131 ),
132 ),
133 ],
134 ),
135 migrations.CreateModel(
136 name='UserProfile',
137 fields=[
138 (
139 'first_name',
140 models.CharField(
141 max_length=30,
142 null=True,
143 validators=[
144 django.core.validators.MinLengthValidator(2),
145 src.accounts.validators.models.NameValidator(),
146 ],
147 ),
148 ),
149 (
150 'last_name',
151 models.CharField(
152 max_length=30,
153 null=True,
154 validators=[
155 django.core.validators.MinLengthValidator(2),
156 src.accounts.validators.models.NameValidator(),
157 ],
158 ),
159 ),
160 (
161 'phone_number',
162 models.CharField(
163 max_length=15,
164 null=True,
165 validators=[
166 django.core.validators.MinLengthValidator(9),
167 src.accounts.validators.models.OnlyDigitsValidator(),
168 ],
169 ),
170 ),
171 (
172 'country',
173 models.CharField(
174 max_length=100,
175 null=True,
176 validators=[
177 django.core.validators.MinLengthValidator(2),
178 src.accounts.validators.models.NameValidator(),
179 ],
180 ),
181 ),
182 (
183 'city',
184 models.CharField(
185 max_length=100,
186 null=True,
187 validators=[
188 django.core.validators.MinLengthValidator(2),
189 src.accounts.validators.models.NameValidator(),
190 ],
191 ),
192 ),
193 (
194 'zip_code',
195 models.CharField(
196 max_length=10,
197 null=True,
198 validators=[
199 django.core.validators.MinLengthValidator(3)
200 ],
201 ),
202 ),
203 (
204 'street_address',
205 models.CharField(
206 max_length=100,
207 null=True,
208 validators=[
209 django.core.validators.MinLengthValidator(2)
210 ],
211 ),
212 ),
213 (
214 'apartment',
215 models.CharField(blank=True, max_length=20, null=True),
216 ),
217 (
218 'user',
219 models.OneToOneField(
220 on_delete=django.db.models.deletion.CASCADE,
221 primary_key=True,
222 serialize=False,
223 to=settings.AUTH_USER_MODEL,
224 ),
225 ),
226 ],
227 ),
228 ]