feat: add insurance and location management

- Introduced InsuranceType enum for insurance categorization.
- Created InsuranceRepository for managing insurance entities.
- Developed LocationController for handling provinces and cities, including CRUD operations.
- Implemented City and Province entities with necessary fields and relationships.
- Added CityRepository and ProvinceRepository for database interactions.
- Established Specialty management with SpecialtyController, including CRUD operations.
- Created Specialty and Tag entities with appropriate fields and relationships.
- Implemented TagController for managing tags, including CRUD operations.
- Added TagRepository for database interactions with tags.
This commit is contained in:
hamed
2026-06-10 14:22:26 +03:30
parent 4b8504df91
commit 5066fcbd91
36 changed files with 2937 additions and 1241 deletions
+51 -19
View File
@@ -165,28 +165,21 @@ export interface SmsLog {
created_at: string;
}
export type CategoryBundle =
| 'state'
| 'city'
| 'specially_doctor'
| 'doctor_services'
| 'insurance_type'
| 'supplementary_insurance'
| 'tag';
export interface Category {
export interface Province {
id: number;
uuid: string;
label: string;
bundle: CategoryBundle;
name: string;
status: number;
weight: number;
parent_id?: number | null;
title?: string | null;
logo_id?: number | null;
// insurance-specific
logo_url?: string | null;
// city-specific
}
export interface City {
id: number;
uuid: string;
name: string;
status: number;
weight: number;
province_id: number | null;
representation_id?: number | null;
contact_phone?: string | null;
email?: string | null;
@@ -195,8 +188,45 @@ export interface Category {
domain?: string | null;
keywords?: string | null;
footer_description?: string | null;
footer_disclaimer?: string | null;
social_media?: Record<string, string> | null;
logo_url?: string | null;
}
export interface SpecialtyFull {
id: number;
uuid: string;
name: string;
slug: string;
status: number;
weight: number;
parent_id: number | null;
}
export interface DoctorService {
id: number;
uuid: string;
name: string;
slug: string;
status: number;
weight: number;
specialty_id: number | null;
}
export interface Insurance {
id: number;
uuid: string;
name: string;
type: 'basic' | 'supplementary';
logo_url: string | null;
status: number;
}
export interface Tag {
id: number;
uuid: string;
name: string;
slug: string;
status: number;
}
export interface Blog {
@@ -251,6 +281,8 @@ export interface SecretaryPermissions {
}
export interface Specialty {
id?: number;
uuid: string;
name: string;
slug?: string;
}