parsa aghaei
e190d3f744
fix(admin-auth & contact): persist admin token in localStorage and allow ADMIN role on contact submission endpoints
Deploy Canina / deploy (push) Failing after 28s
2026-08-08 18:57:43 +03:30
parsa aghaei
fa688e2f8b
fix(api/validation): restore strict forbidNonWhitelisted: true and decorate all GET route queries with explicit DTOs across admin and application APIs
Deploy Canina / deploy (push) Failing after 28s
2026-08-08 18:45:57 +03:30
parsa aghaei
7cc9194827
fix(validation & catalog): disable strict forbidNonWhitelisted in NestJS ValidationPipe and wire full catalog mode & maintenance mode settings to frontend
Deploy Canina / deploy (push) Failing after 29s
2026-08-08 18:38:48 +03:30
parsa aghaei
9e233bee27
fix(admin/b2b): add GET /b2b/partners endpoint and update B2BManager fetch path to fix 404 error
Deploy Canina / deploy (push) Failing after 29s
2026-08-08 18:30:42 +03:30
parsa aghaei
43cf55a8ef
fix(admin): resolve GET/PUT /admin/settings 404, videos.map crash, and remove legacy CMS sidebar link
Deploy Canina / deploy (push) Failing after 29s
2026-08-08 18:26:05 +03:30
parsa aghaei
df340143dc
feat(auth/seed): create admin@canino-iran.com user with bcrypt hash in database & seed.ts
Deploy Canina / deploy (push) Failing after 28s
2026-08-08 18:21:28 +03:30
parsa aghaei
bb1ed1bd03
fix(dto): remove redundant search override property in GetVideosQueryDto
Deploy Canina / deploy (push) Failing after 28s
2026-08-08 18:14:13 +03:30
parsa aghaei
74b3d24622
fix(api/auth): allow public GET on ui-texts & scientific-terms, fix refresh attempt loop, remove duplicate error toasts and prevent unwanted modal popups
Deploy Canina / deploy (push) Failing after 28s
2026-08-08 18:11:17 +03:30
parsa aghaei
adbfa60343
fix(frontend/backend): suppress unauth toast on init, fix admin-login DTO validation and RSC directives
Deploy Canina / deploy (push) Failing after 29s
2026-08-08 18:02:43 +03:30
parsa aghaei
acc662fce8
fix(backend): add dev fallbacks for JWT secrets to prevent local bootstrap crash
Deploy Canina / deploy (push) Has been cancelled
2026-08-08 17:51:48 +03:30
parsa aghaei
59fba0484c
fix(backend): add js-yaml dependency and type definitions for openapi generator
Deploy Canina / deploy (push) Failing after 28s
2026-08-08 17:48:28 +03:30
parsa aghaei
e281ef75da
feat(security/devops): disable swagger in prod, secure staging with basic auth & noindex, add DB backup script and uploads volume persistence
Deploy Canina / deploy (push) Failing after 29s
2026-08-08 17:46:42 +03:30
9f11d8fb2d
chore(workspace): eradicate all tsc errors and eslint warnings across frontend, admin, and backend
Deploy Canina / deploy (push) Failing after 29s
2026-08-07 07:39:26 +03:30
1ae4c99ffc
feat(backend): implement Phase A database models and controllers for cross-boundary dependencies
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 23:45:51 +03:30
ad3f149789
feat(devops,docs,verify): implement Phase 4 CI pipeline, OpenAPI synchronization, and E2E verification matrix
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 22:27:56 +03:30
71e19bfe43
fix(orders): add type assertions for Prisma relations in checkAndSendRefillReminders
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 21:44:44 +03:30
809c69f923
feat(phase2): implement database optimization and RBAC enforcement
...
Deploy Canina / deploy (push) Failing after 28s
- TASK-FIN-001: Eliminate N+1 query loop in OrdersService.create with batched findMany query.
- Perform monetary calculations strictly using Prisma.Decimal methods (.add(), .mul(), .sub()).
- Add validation for duplicate product IDs and invalid quantities in order items.
- Implement global DecimalInterceptor registered in main.ts to serialize Prisma.Decimal values into exact string representations in API responses.
- TASK-SEC-003: Create roles.decorator.ts and roles.guard.ts in common directory with backward-compatible re-exports in auth directory.
- Enforce RBAC on SettingsController with @UseGuards(JwtAuthGuard, RolesGuard) and @Roles('Admin').
- Add unit specs for DecimalInterceptor, RolesGuard, SettingsController, and OrdersService Decimal batch operations.
2026-08-06 21:29:20 +03:30
a64291a19a
feat(security): implement phase 1 core security & build hygiene
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 21:15:18 +03:30
parsa aghaei
053d6f06d8
fix(types): resolve type errors in ReportData, SmsService, and GetProductsDto
Deploy Canina / deploy (push) Waiting to run
2026-08-05 15:48:11 +03:30
parsa aghaei
8a05854aa0
feat(orders): atomic order transaction and refill cron job handler [TASK-26.19]
2026-08-05 14:41:58 +03:30
parsa aghaei
cbcff26e63
feat(pets): add admin pet health records query and paginated pet list endpoint [TASK-26.17]
2026-08-05 14:41:26 +03:30
parsa aghaei
d94b33f96d
feat(admin): wallet adjustment endpoint and atomic prisma wallet topup transaction [TASK-26.14] [TASK-26.15] [TASK-26.16]
2026-08-05 14:40:35 +03:30
parsa aghaei
3497a743b3
feat(products): fix search query filter overwrite and add minPrice maxPrice sorting filters [TASK-26.10] [TASK-26.11]
2026-08-05 14:39:58 +03:30
parsa aghaei
350182c5a4
security(auth): remove OTP console log and hardcoded admin credentials [TASK-26.4] [TASK-26.5]
2026-08-05 14:38:57 +03:30
parsa aghaei
c6aa77f7c9
feat(admin): add product buy price field, dual price/percentage margin calculator, and security sanitization [TASK-BUYPRICE]
2026-08-03 12:04:27 +03:30
parsa aghaei
67bc500692
security(products): sanitize wholesalePrice for non-B2B/Admin roles [TASK-19.1]
2026-08-03 11:50:20 +03:30
parsa aghaei
920dd532e8
fix(admin-panel): resolve all ESLint errors, types, and hooks lifecycle warnings
2026-08-02 17:08:01 +03:30
parsa aghaei
a1f0640483
fix(linter): resolve all linter rules and type errors across 3 subprojects
2026-08-02 09:39:53 +03:30
parsa aghaei
b6b2d20b16
feat(sms): set MeliPayamak username 9364100228 and patterns 508079, 508081, 508082, 508083 (TASK-9.1)
2026-08-02 09:30:21 +03:30
parsa aghaei
47bff2c6ed
feat(doctor): implement Doctors / Vets CRUD backend and DB model (TASK-2.18)
2026-08-02 09:29:33 +03:30
parsa aghaei
d784f3fcc7
feat(admin): update dashboard real analytics & wiki related products (TASK-2.21, TASK-2.22, TASK-2.23)
2026-08-02 09:28:17 +03:30
parsa aghaei
88521c6bac
feat(settings): add Maintenance Mode, Catalog Mode, Brand Identity & UI Text management (TASK-2.14, TASK-2.15, TASK-2.16)
2026-08-02 09:26:06 +03:30
parsa aghaei
e2e9615bd8
feat(media): implement persistent storage & media SEO fields (altText, title, description, caption) (TASK-2.5, TASK-2.6)
2026-08-02 09:23:30 +03:30
parsa aghaei
357fb73d5e
feat(product): add product gallery images and multimedia fields podcastUrl/videoUrl/pdfUrl (TASK-2.2, TASK-2.3, TASK-2.4)
2026-08-02 09:21:27 +03:30
parsa aghaei
2ce24b0473
fix(admin): cleanup price display input, upgrade pagination component and extend roles guard for CMS & B2B
2026-08-01 18:30:14 +03:30
parsa aghaei
2aea3bded4
feat(contact): implement contact form submission, admin management and dynamic contact info
2026-08-01 18:28:19 +03:30
parsa aghaei
95e488baaa
fix(lint): sync clean types and imports to main
Deploy Canina / deploy (push) Successful in 1m54s
2026-07-29 16:45:13 +03:30
parsa aghaei
2de442dbae
fix(lint): clean up type definitions and missing imports
Deploy Canina / deploy (push) Failing after 30m46s
2026-07-29 16:44:53 +03:30
parsa aghaei
f0329d8b5b
fix(admin): sync product update & image URL features to main
Deploy Canina / deploy (push) Failing after 1m1s
2026-07-29 16:42:30 +03:30
parsa aghaei
9c8286c63f
fix(admin): resolve 500 on missing product update and add direct image URL & paste support
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 16:42:23 +03:30
parsa aghaei
a3291cc468
feat(agency): implement Farsi error handling, trust seals page, and MeliPayamak SMS integration
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 16:40:42 +03:30
parsa aghaei
a767e9a6b8
merge: sync develop fixes into main
Deploy Canina / deploy (push) Failing after 9m25s
2026-07-29 15:55:50 +03:30
parsa aghaei
bf60df34ef
fix(seed): safely handle blog upsert in try-catch block
Deploy Canina / deploy (push) Successful in 2m6s
2026-07-29 15:49:39 +03:30
parsa aghaei
84d9ed3a9d
perf(docker): replace slow RUN chown -R with fast COPY --chown in backend Dockerfile
2026-07-29 15:48:26 +03:30
parsa aghaei
62bd8811fa
style: apply standard ESLint & Prettier formatting across backend
Deploy Canina / deploy (push) Successful in 4m58s
2026-07-29 15:41:53 +03:30
parsa aghaei
ae636c8b03
fix(seed): add explicit String casting for ingredient and symptom loop items to satisfy TypeScript compiler
2026-07-29 15:40:44 +03:30
parsa aghaei
3ede3c31f9
fix(seed): format seed-products.ts with Prettier and add type annotations for ESLint
2026-07-29 15:40:01 +03:30
parsa aghaei
ddf2bafb3c
fix(seed): deduplicate ingredients and symptoms to ensure clean database seeding
2026-07-29 15:38:15 +03:30
parsa aghaei
8a6afa10d8
fix(seed): remove duplicate out-of-scope code in seed-products.ts
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 15:23:14 +03:30
parsa aghaei
e1fb300b87
fix(seed): handle duplicate product barcodes safely with try-catch in seed-products.ts
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 15:21:41 +03:30