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

8 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-10-02 13:31 +0300

1# Generated by Django 5.2.1 on 2025-09-22 10:13 

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 ('description', models.TextField(blank=True, null=True)), 

180 ( 

181 'collection', 

182 models.ForeignKey( 

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

184 to='products.collection', 

185 ), 

186 ), 

187 ( 

188 'color', 

189 models.ForeignKey( 

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

191 to='products.color', 

192 ), 

193 ), 

194 ( 

195 'metal', 

196 models.ForeignKey( 

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

198 to='products.metal', 

199 ), 

200 ), 

201 ( 

202 'stone', 

203 models.ForeignKey( 

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

205 to='products.stone', 

206 ), 

207 ), 

208 ], 

209 options={ 

210 'abstract': False, 

211 }, 

212 ), 

213 migrations.CreateModel( 

214 name='Pendant', 

215 fields=[ 

216 ( 

217 'id', 

218 models.BigAutoField( 

219 auto_created=True, 

220 primary_key=True, 

221 serialize=False, 

222 verbose_name='ID', 

223 ), 

224 ), 

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

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

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

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

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

230 ( 

231 'target_gender', 

232 models.CharField( 

233 blank=True, 

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

235 default='F', 

236 max_length=1, 

237 null=True, 

238 ), 

239 ), 

240 ('description', models.TextField(blank=True, null=True)), 

241 ( 

242 'collection', 

243 models.ForeignKey( 

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

245 to='products.collection', 

246 ), 

247 ), 

248 ( 

249 'color', 

250 models.ForeignKey( 

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

252 to='products.color', 

253 ), 

254 ), 

255 ( 

256 'metal', 

257 models.ForeignKey( 

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

259 to='products.metal', 

260 ), 

261 ), 

262 ( 

263 'stone', 

264 models.ForeignKey( 

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

266 to='products.stone', 

267 ), 

268 ), 

269 ], 

270 options={ 

271 'abstract': False, 

272 }, 

273 ), 

274 migrations.CreateModel( 

275 name='Necklace', 

276 fields=[ 

277 ( 

278 'id', 

279 models.BigAutoField( 

280 auto_created=True, 

281 primary_key=True, 

282 serialize=False, 

283 verbose_name='ID', 

284 ), 

285 ), 

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

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

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

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

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

291 ( 

292 'target_gender', 

293 models.CharField( 

294 blank=True, 

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

296 default='F', 

297 max_length=1, 

298 null=True, 

299 ), 

300 ), 

301 ('description', models.TextField(blank=True, null=True)), 

302 ( 

303 'collection', 

304 models.ForeignKey( 

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

306 to='products.collection', 

307 ), 

308 ), 

309 ( 

310 'color', 

311 models.ForeignKey( 

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

313 to='products.color', 

314 ), 

315 ), 

316 ( 

317 'metal', 

318 models.ForeignKey( 

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

320 to='products.metal', 

321 ), 

322 ), 

323 ( 

324 'stone', 

325 models.ForeignKey( 

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

327 to='products.stone', 

328 ), 

329 ), 

330 ], 

331 options={ 

332 'abstract': False, 

333 }, 

334 ), 

335 migrations.CreateModel( 

336 name='Earring', 

337 fields=[ 

338 ( 

339 'id', 

340 models.BigAutoField( 

341 auto_created=True, 

342 primary_key=True, 

343 serialize=False, 

344 verbose_name='ID', 

345 ), 

346 ), 

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

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

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

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

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

352 ( 

353 'target_gender', 

354 models.CharField( 

355 blank=True, 

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

357 default='F', 

358 max_length=1, 

359 null=True, 

360 ), 

361 ), 

362 ('description', models.TextField(blank=True, null=True)), 

363 ( 

364 'collection', 

365 models.ForeignKey( 

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

367 to='products.collection', 

368 ), 

369 ), 

370 ( 

371 'color', 

372 models.ForeignKey( 

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

374 to='products.color', 

375 ), 

376 ), 

377 ( 

378 'metal', 

379 models.ForeignKey( 

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

381 to='products.metal', 

382 ), 

383 ), 

384 ( 

385 'stone', 

386 models.ForeignKey( 

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

388 to='products.stone', 

389 ), 

390 ), 

391 ], 

392 options={ 

393 'abstract': False, 

394 }, 

395 ), 

396 migrations.CreateModel( 

397 name='Bracelet', 

398 fields=[ 

399 ( 

400 'id', 

401 models.BigAutoField( 

402 auto_created=True, 

403 primary_key=True, 

404 serialize=False, 

405 verbose_name='ID', 

406 ), 

407 ), 

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

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

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

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

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

413 ( 

414 'target_gender', 

415 models.CharField( 

416 blank=True, 

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

418 default='F', 

419 max_length=1, 

420 null=True, 

421 ), 

422 ), 

423 ('description', models.TextField(blank=True, null=True)), 

424 ( 

425 'collection', 

426 models.ForeignKey( 

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

428 to='products.collection', 

429 ), 

430 ), 

431 ( 

432 'color', 

433 models.ForeignKey( 

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

435 to='products.color', 

436 ), 

437 ), 

438 ( 

439 'metal', 

440 models.ForeignKey( 

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

442 to='products.metal', 

443 ), 

444 ), 

445 ( 

446 'stone', 

447 models.ForeignKey( 

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

449 to='products.stone', 

450 ), 

451 ), 

452 ], 

453 options={ 

454 'abstract': False, 

455 }, 

456 ), 

457 migrations.CreateModel( 

458 name='Watch', 

459 fields=[ 

460 ( 

461 'id', 

462 models.BigAutoField( 

463 auto_created=True, 

464 primary_key=True, 

465 serialize=False, 

466 verbose_name='ID', 

467 ), 

468 ), 

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

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

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

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

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

474 ( 

475 'target_gender', 

476 models.CharField( 

477 blank=True, 

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

479 default='F', 

480 max_length=1, 

481 null=True, 

482 ), 

483 ), 

484 ('description', models.TextField(blank=True, null=True)), 

485 ( 

486 'collection', 

487 models.ForeignKey( 

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

489 to='products.collection', 

490 ), 

491 ), 

492 ( 

493 'color', 

494 models.ForeignKey( 

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

496 to='products.color', 

497 ), 

498 ), 

499 ( 

500 'metal', 

501 models.ForeignKey( 

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

503 to='products.metal', 

504 ), 

505 ), 

506 ( 

507 'stone', 

508 models.ForeignKey( 

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

510 to='products.stone', 

511 ), 

512 ), 

513 ], 

514 options={ 

515 'abstract': False, 

516 }, 

517 ), 

518 migrations.CreateModel( 

519 name='Review', 

520 fields=[ 

521 ( 

522 'id', 

523 models.BigAutoField( 

524 auto_created=True, 

525 primary_key=True, 

526 serialize=False, 

527 verbose_name='ID', 

528 ), 

529 ), 

530 ( 

531 'rating', 

532 models.IntegerField( 

533 choices=[ 

534 (1, '1'), 

535 (2, '2'), 

536 (3, '3'), 

537 (4, '4'), 

538 (5, '5'), 

539 ] 

540 ), 

541 ), 

542 ( 

543 'comment', 

544 models.TextField( 

545 validators=[ 

546 django.core.validators.MaxLengthValidator(300) 

547 ] 

548 ), 

549 ), 

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

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

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

553 ( 

554 'content_type', 

555 models.ForeignKey( 

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

557 to='contenttypes.contenttype', 

558 ), 

559 ), 

560 ( 

561 'user', 

562 models.ForeignKey( 

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

564 to=settings.AUTH_USER_MODEL, 

565 ), 

566 ), 

567 ], 

568 options={ 

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

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

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

572 }, 

573 ), 

574 ]