Coverage for src/products/migrations/0001_initial.py: 100%

8 statements  

« 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 

2 

3import django.core.validators 

4import django.db.models.deletion 

5from django.conf import settings 

6from django.db import migrations, models 

7 

8 

9class Migration(migrations.Migration): 

10 

11 initial = True 

12 

13 dependencies = [ 

14 ('contenttypes', '0002_remove_content_type_name'), 

15 migrations.swappable_dependency(settings.AUTH_USER_MODEL), 

16 ] 

17 

18 operations = [ 

19 migrations.CreateModel( 

20 name='Collection', 

21 fields=[ 

22 ( 

23 'id', 

24 models.BigAutoField( 

25 auto_created=True, 

26 primary_key=True, 

27 serialize=False, 

28 verbose_name='ID', 

29 ), 

30 ), 

31 ('name', models.CharField(max_length=30, unique=True)), 

32 ], 

33 options={ 

34 'abstract': False, 

35 }, 

36 ), 

37 migrations.CreateModel( 

38 name='Color', 

39 fields=[ 

40 ( 

41 'id', 

42 models.BigAutoField( 

43 auto_created=True, 

44 primary_key=True, 

45 serialize=False, 

46 verbose_name='ID', 

47 ), 

48 ), 

49 ('name', models.CharField(max_length=30, unique=True)), 

50 ], 

51 options={ 

52 'abstract': False, 

53 }, 

54 ), 

55 migrations.CreateModel( 

56 name='Metal', 

57 fields=[ 

58 ( 

59 'id', 

60 models.BigAutoField( 

61 auto_created=True, 

62 primary_key=True, 

63 serialize=False, 

64 verbose_name='ID', 

65 ), 

66 ), 

67 ('name', models.CharField(max_length=30, unique=True)), 

68 ], 

69 options={ 

70 'abstract': False, 

71 }, 

72 ), 

73 migrations.CreateModel( 

74 name='Size', 

75 fields=[ 

76 ( 

77 'id', 

78 models.BigAutoField( 

79 auto_created=True, 

80 primary_key=True, 

81 serialize=False, 

82 verbose_name='ID', 

83 ), 

84 ), 

85 ('name', models.CharField(max_length=30, unique=True)), 

86 ], 

87 options={ 

88 'abstract': False, 

89 }, 

90 ), 

91 migrations.CreateModel( 

92 name='Stone', 

93 fields=[ 

94 ( 

95 'id', 

96 models.BigAutoField( 

97 auto_created=True, 

98 primary_key=True, 

99 serialize=False, 

100 verbose_name='ID', 

101 ), 

102 ), 

103 ('name', models.CharField(max_length=30, unique=True)), 

104 ], 

105 options={ 

106 'abstract': False, 

107 }, 

108 ), 

109 migrations.CreateModel( 

110 name='Inventory', 

111 fields=[ 

112 ( 

113 'id', 

114 models.BigAutoField( 

115 auto_created=True, 

116 primary_key=True, 

117 serialize=False, 

118 verbose_name='ID', 

119 ), 

120 ), 

121 ('quantity', models.PositiveIntegerField(default=5)), 

122 ( 

123 'price', 

124 models.DecimalField( 

125 decimal_places=2, 

126 max_digits=7, 

127 validators=[ 

128 django.core.validators.MinValueValidator(0) 

129 ], 

130 ), 

131 ), 

132 ('object_id', models.PositiveIntegerField()), 

133 ( 

134 'content_type', 

135 models.ForeignKey( 

136 on_delete=django.db.models.deletion.CASCADE, 

137 to='contenttypes.contenttype', 

138 ), 

139 ), 

140 ( 

141 'size', 

142 models.ForeignKey( 

143 on_delete=django.db.models.deletion.CASCADE, 

144 to='products.size', 

145 ), 

146 ), 

147 ], 

148 options={ 

149 'ordering': ['id'], 

150 }, 

151 ), 

152 migrations.CreateModel( 

153 name='Ring', 

154 fields=[ 

155 ( 

156 'id', 

157 models.BigAutoField( 

158 auto_created=True, 

159 primary_key=True, 

160 serialize=False, 

161 verbose_name='ID', 

162 ), 

163 ), 

164 ('first_image', models.URLField(unique=True)), 

165 ('second_image', models.URLField(unique=True)), 

166 ('third_image', models.URLField(unique=True)), 

167 ('fourth_image', models.URLField(unique=True)), 

168 ('created_at', models.DateTimeField(auto_now_add=True)), 

169 ( 

170 'target_gender', 

171 models.CharField( 

172 blank=True, 

173 choices=[('M', 'Male'), ('F', 'Female')], 

174 default='F', 

175 max_length=1, 

176 null=True, 

177 ), 

178 ), 

179 ( 

180 'collection', 

181 models.ForeignKey( 

182 on_delete=django.db.models.deletion.CASCADE, 

183 to='products.collection', 

184 ), 

185 ), 

186 ( 

187 'color', 

188 models.ForeignKey( 

189 on_delete=django.db.models.deletion.CASCADE, 

190 to='products.color', 

191 ), 

192 ), 

193 ( 

194 'metal', 

195 models.ForeignKey( 

196 on_delete=django.db.models.deletion.CASCADE, 

197 to='products.metal', 

198 ), 

199 ), 

200 ( 

201 'stone', 

202 models.ForeignKey( 

203 on_delete=django.db.models.deletion.CASCADE, 

204 to='products.stone', 

205 ), 

206 ), 

207 ], 

208 options={ 

209 'abstract': False, 

210 }, 

211 ), 

212 migrations.CreateModel( 

213 name='Pendant', 

214 fields=[ 

215 ( 

216 'id', 

217 models.BigAutoField( 

218 auto_created=True, 

219 primary_key=True, 

220 serialize=False, 

221 verbose_name='ID', 

222 ), 

223 ), 

224 ('first_image', models.URLField(unique=True)), 

225 ('second_image', models.URLField(unique=True)), 

226 ('third_image', models.URLField(unique=True)), 

227 ('fourth_image', models.URLField(unique=True)), 

228 ('created_at', models.DateTimeField(auto_now_add=True)), 

229 ( 

230 'target_gender', 

231 models.CharField( 

232 blank=True, 

233 choices=[('M', 'Male'), ('F', 'Female')], 

234 default='F', 

235 max_length=1, 

236 null=True, 

237 ), 

238 ), 

239 ( 

240 'collection', 

241 models.ForeignKey( 

242 on_delete=django.db.models.deletion.CASCADE, 

243 to='products.collection', 

244 ), 

245 ), 

246 ( 

247 'color', 

248 models.ForeignKey( 

249 on_delete=django.db.models.deletion.CASCADE, 

250 to='products.color', 

251 ), 

252 ), 

253 ( 

254 'metal', 

255 models.ForeignKey( 

256 on_delete=django.db.models.deletion.CASCADE, 

257 to='products.metal', 

258 ), 

259 ), 

260 ( 

261 'stone', 

262 models.ForeignKey( 

263 on_delete=django.db.models.deletion.CASCADE, 

264 to='products.stone', 

265 ), 

266 ), 

267 ], 

268 options={ 

269 'abstract': False, 

270 }, 

271 ), 

272 migrations.CreateModel( 

273 name='Necklace', 

274 fields=[ 

275 ( 

276 'id', 

277 models.BigAutoField( 

278 auto_created=True, 

279 primary_key=True, 

280 serialize=False, 

281 verbose_name='ID', 

282 ), 

283 ), 

284 ('first_image', models.URLField(unique=True)), 

285 ('second_image', models.URLField(unique=True)), 

286 ('third_image', models.URLField(unique=True)), 

287 ('fourth_image', models.URLField(unique=True)), 

288 ('created_at', models.DateTimeField(auto_now_add=True)), 

289 ( 

290 'target_gender', 

291 models.CharField( 

292 blank=True, 

293 choices=[('M', 'Male'), ('F', 'Female')], 

294 default='F', 

295 max_length=1, 

296 null=True, 

297 ), 

298 ), 

299 ( 

300 'collection', 

301 models.ForeignKey( 

302 on_delete=django.db.models.deletion.CASCADE, 

303 to='products.collection', 

304 ), 

305 ), 

306 ( 

307 'color', 

308 models.ForeignKey( 

309 on_delete=django.db.models.deletion.CASCADE, 

310 to='products.color', 

311 ), 

312 ), 

313 ( 

314 'metal', 

315 models.ForeignKey( 

316 on_delete=django.db.models.deletion.CASCADE, 

317 to='products.metal', 

318 ), 

319 ), 

320 ( 

321 'stone', 

322 models.ForeignKey( 

323 on_delete=django.db.models.deletion.CASCADE, 

324 to='products.stone', 

325 ), 

326 ), 

327 ], 

328 options={ 

329 'abstract': False, 

330 }, 

331 ), 

332 migrations.CreateModel( 

333 name='Earring', 

334 fields=[ 

335 ( 

336 'id', 

337 models.BigAutoField( 

338 auto_created=True, 

339 primary_key=True, 

340 serialize=False, 

341 verbose_name='ID', 

342 ), 

343 ), 

344 ('first_image', models.URLField(unique=True)), 

345 ('second_image', models.URLField(unique=True)), 

346 ('third_image', models.URLField(unique=True)), 

347 ('fourth_image', models.URLField(unique=True)), 

348 ('created_at', models.DateTimeField(auto_now_add=True)), 

349 ( 

350 'target_gender', 

351 models.CharField( 

352 blank=True, 

353 choices=[('M', 'Male'), ('F', 'Female')], 

354 default='F', 

355 max_length=1, 

356 null=True, 

357 ), 

358 ), 

359 ( 

360 'collection', 

361 models.ForeignKey( 

362 on_delete=django.db.models.deletion.CASCADE, 

363 to='products.collection', 

364 ), 

365 ), 

366 ( 

367 'color', 

368 models.ForeignKey( 

369 on_delete=django.db.models.deletion.CASCADE, 

370 to='products.color', 

371 ), 

372 ), 

373 ( 

374 'metal', 

375 models.ForeignKey( 

376 on_delete=django.db.models.deletion.CASCADE, 

377 to='products.metal', 

378 ), 

379 ), 

380 ( 

381 'stone', 

382 models.ForeignKey( 

383 on_delete=django.db.models.deletion.CASCADE, 

384 to='products.stone', 

385 ), 

386 ), 

387 ], 

388 options={ 

389 'abstract': False, 

390 }, 

391 ), 

392 migrations.CreateModel( 

393 name='Bracelet', 

394 fields=[ 

395 ( 

396 'id', 

397 models.BigAutoField( 

398 auto_created=True, 

399 primary_key=True, 

400 serialize=False, 

401 verbose_name='ID', 

402 ), 

403 ), 

404 ('first_image', models.URLField(unique=True)), 

405 ('second_image', models.URLField(unique=True)), 

406 ('third_image', models.URLField(unique=True)), 

407 ('fourth_image', models.URLField(unique=True)), 

408 ('created_at', models.DateTimeField(auto_now_add=True)), 

409 ( 

410 'target_gender', 

411 models.CharField( 

412 blank=True, 

413 choices=[('M', 'Male'), ('F', 'Female')], 

414 default='F', 

415 max_length=1, 

416 null=True, 

417 ), 

418 ), 

419 ( 

420 'collection', 

421 models.ForeignKey( 

422 on_delete=django.db.models.deletion.CASCADE, 

423 to='products.collection', 

424 ), 

425 ), 

426 ( 

427 'color', 

428 models.ForeignKey( 

429 on_delete=django.db.models.deletion.CASCADE, 

430 to='products.color', 

431 ), 

432 ), 

433 ( 

434 'metal', 

435 models.ForeignKey( 

436 on_delete=django.db.models.deletion.CASCADE, 

437 to='products.metal', 

438 ), 

439 ), 

440 ( 

441 'stone', 

442 models.ForeignKey( 

443 on_delete=django.db.models.deletion.CASCADE, 

444 to='products.stone', 

445 ), 

446 ), 

447 ], 

448 options={ 

449 'abstract': False, 

450 }, 

451 ), 

452 migrations.CreateModel( 

453 name='Watch', 

454 fields=[ 

455 ( 

456 'id', 

457 models.BigAutoField( 

458 auto_created=True, 

459 primary_key=True, 

460 serialize=False, 

461 verbose_name='ID', 

462 ), 

463 ), 

464 ('first_image', models.URLField(unique=True)), 

465 ('second_image', models.URLField(unique=True)), 

466 ('third_image', models.URLField(unique=True)), 

467 ('fourth_image', models.URLField(unique=True)), 

468 ('created_at', models.DateTimeField(auto_now_add=True)), 

469 ( 

470 'target_gender', 

471 models.CharField( 

472 blank=True, 

473 choices=[('M', 'Male'), ('F', 'Female')], 

474 default='F', 

475 max_length=1, 

476 null=True, 

477 ), 

478 ), 

479 ( 

480 'collection', 

481 models.ForeignKey( 

482 on_delete=django.db.models.deletion.CASCADE, 

483 to='products.collection', 

484 ), 

485 ), 

486 ( 

487 'color', 

488 models.ForeignKey( 

489 on_delete=django.db.models.deletion.CASCADE, 

490 to='products.color', 

491 ), 

492 ), 

493 ( 

494 'metal', 

495 models.ForeignKey( 

496 on_delete=django.db.models.deletion.CASCADE, 

497 to='products.metal', 

498 ), 

499 ), 

500 ( 

501 'stone', 

502 models.ForeignKey( 

503 on_delete=django.db.models.deletion.CASCADE, 

504 to='products.stone', 

505 ), 

506 ), 

507 ], 

508 options={ 

509 'abstract': False, 

510 }, 

511 ), 

512 migrations.CreateModel( 

513 name='Review', 

514 fields=[ 

515 ( 

516 'id', 

517 models.BigAutoField( 

518 auto_created=True, 

519 primary_key=True, 

520 serialize=False, 

521 verbose_name='ID', 

522 ), 

523 ), 

524 ( 

525 'rating', 

526 models.IntegerField( 

527 choices=[ 

528 (1, '1'), 

529 (2, '2'), 

530 (3, '3'), 

531 (4, '4'), 

532 (5, '5'), 

533 ] 

534 ), 

535 ), 

536 ( 

537 'comment', 

538 models.TextField( 

539 validators=[ 

540 django.core.validators.MaxLengthValidator(300) 

541 ] 

542 ), 

543 ), 

544 ('approved', models.BooleanField(default=False)), 

545 ('created_at', models.DateTimeField(auto_now_add=True)), 

546 ('object_id', models.PositiveIntegerField()), 

547 ( 

548 'content_type', 

549 models.ForeignKey( 

550 on_delete=django.db.models.deletion.CASCADE, 

551 to='contenttypes.contenttype', 

552 ), 

553 ), 

554 ( 

555 'user', 

556 models.ForeignKey( 

557 on_delete=django.db.models.deletion.CASCADE, 

558 to=settings.AUTH_USER_MODEL, 

559 ), 

560 ), 

561 ], 

562 options={ 

563 'ordering': ['-created_at'], 

564 'permissions': [('approve_review', 'Can approve reviews')], 

565 'unique_together': {('user', 'content_type', 'object_id')}, 

566 }, 

567 ), 

568 ]