feat: add CategoryImportController for bulk JSON import and export of categories

- Implemented export functionality to retrieve all rows from specified category tables.
- Developed import functionality with strict validation and referential integrity checks.
- Added error handling for various import scenarios including invalid formats and duplicate entries.
- Introduced tests for import functionality to ensure correct behavior and validation.
This commit is contained in:
hamed
2026-06-30 21:51:06 +03:30
parent 803196108c
commit 22937dfa56
22 changed files with 2473 additions and 835 deletions
+27 -12
View File
@@ -190,8 +190,8 @@
"semantic_hash": ""
},
"assets/admin/pages/CategoriesPage.tsx": {
"mtime": 1782042929.639692,
"ast_hash": "d6aa06ef7578f2601fede2a8c77dceb1",
"mtime": 1782838987.6521325,
"ast_hash": "e4e8f39e7e7a03b947ce2883ed595a37",
"semantic_hash": ""
},
"assets/admin/pages/ClaimsPage.tsx": {
@@ -2390,8 +2390,8 @@
"semantic_hash": ""
},
"docs/api/doctor-service.md": {
"mtime": 1781158861.7234077,
"ast_hash": "3f0d0549bcfcf6163d2762e85c3f3776",
"mtime": 1782839237.8086488,
"ast_hash": "3c3f4da25682c21bf769a2c170b9dc6f",
"semantic_hash": ""
},
"docs/api/doctor.md": {
@@ -2400,13 +2400,13 @@
"semantic_hash": ""
},
"docs/api/insurance.md": {
"mtime": 1782728407.109222,
"ast_hash": "05f4fa9a2628811066a8f2cb90b6db4d",
"mtime": 1782839237.8089066,
"ast_hash": "66c99e8593c6e48fbbb065610b626e68",
"semantic_hash": ""
},
"docs/api/location.md": {
"mtime": 1781158896.6071815,
"ast_hash": "428efca3871276f0e7db9de61c32768c",
"mtime": 1782839237.808474,
"ast_hash": "9db8856184fd38eed6f377ac425584fa",
"semantic_hash": ""
},
"docs/api/patient.md": {
@@ -2445,8 +2445,8 @@
"semantic_hash": ""
},
"docs/api/specialty.md": {
"mtime": 1781636247.0762212,
"ast_hash": "fdaed926f0d4c12f795071556c662070",
"mtime": 1782839237.8082483,
"ast_hash": "45c0b1034a9e6bd3ea4973796b5538c1",
"semantic_hash": ""
},
"docs/api/staff.md": {
@@ -2460,8 +2460,8 @@
"semantic_hash": ""
},
"docs/api/tag.md": {
"mtime": 1781158875.2883966,
"ast_hash": "b727bc06ebe9ef4a464192be385b38f8",
"mtime": 1782839237.8090699,
"ast_hash": "0f848b663c3d80081a71fb46b8088c87",
"semantic_hash": ""
},
"docs/api/user-profile.md": {
@@ -3413,5 +3413,20 @@
"mtime": 1782749549.9584448,
"ast_hash": "6e005bb338617608a0441724126a5bd3",
"semantic_hash": ""
},
"src/Category/Controller/CategoryImportController.php": {
"mtime": 1782839057.0287304,
"ast_hash": "f4d8651689e73ca956bc2a9570bba695",
"semantic_hash": ""
},
"tests/Category/CategoryImportTest.php": {
"mtime": 1782839178.8459258,
"ast_hash": "203f5500749a42f0be4f33dc2e3dbb1f",
"semantic_hash": ""
},
"docs/api/category-import.md": {
"mtime": 1782839220.8153825,
"ast_hash": "da0c24b873a9f46c97cd8760ac4eeba5",
"semantic_hash": ""
}
}