counseling-schema 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/appointment.schema.d.ts +144 -0
- package/dist/appointment.schema.d.ts.map +1 -0
- package/dist/appointment.schema.js +42 -0
- package/dist/appointment.schema.js.map +1 -0
- package/dist/chat.schema.d.ts +24 -0
- package/dist/chat.schema.d.ts.map +1 -0
- package/dist/chat.schema.js +22 -0
- package/dist/chat.schema.js.map +1 -0
- package/dist/clinic-profile.schema.d.ts +346 -0
- package/dist/clinic-profile.schema.d.ts.map +1 -0
- package/dist/clinic-profile.schema.js +64 -0
- package/dist/clinic-profile.schema.js.map +1 -0
- package/dist/counselor-profile.schema.d.ts +326 -0
- package/dist/counselor-profile.schema.d.ts.map +1 -0
- package/dist/counselor-profile.schema.js +56 -0
- package/dist/counselor-profile.schema.js.map +1 -0
- package/dist/enquiry.schema.d.ts +40 -0
- package/dist/enquiry.schema.d.ts.map +1 -0
- package/dist/enquiry.schema.js +21 -0
- package/dist/enquiry.schema.js.map +1 -0
- package/dist/enums.d.ts +52 -0
- package/dist/enums.d.ts.map +1 -0
- package/dist/enums.js +131 -0
- package/dist/enums.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/review.schema.d.ts +34 -0
- package/dist/review.schema.d.ts.map +1 -0
- package/dist/review.schema.js +18 -0
- package/dist/review.schema.js.map +1 -0
- package/dist/search.schema.d.ts +149 -0
- package/dist/search.schema.d.ts.map +1 -0
- package/dist/search.schema.js +33 -0
- package/dist/search.schema.js.map +1 -0
- package/dist/specializations.d.ts +33 -0
- package/dist/specializations.d.ts.map +1 -0
- package/dist/specializations.js +163 -0
- package/dist/specializations.js.map +1 -0
- package/dist/subscription.schema.d.ts +10 -0
- package/dist/subscription.schema.d.ts.map +1 -0
- package/dist/subscription.schema.js +7 -0
- package/dist/subscription.schema.js.map +1 -0
- package/package.json +34 -0
package/dist/enums.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/** Provider type — individual counselor or counseling clinic. */
|
|
2
|
+
export const PROVIDER_TYPE = ["counselor", "clinic"];
|
|
3
|
+
/** Session mode — how counseling is conducted. Phase 1: in_person only. */
|
|
4
|
+
export const SESSION_MODE = ["in_person"];
|
|
5
|
+
/** Revenue model — how the platform earns from the provider. */
|
|
6
|
+
export const REVENUE_MODEL = ["commission", "subscription"];
|
|
7
|
+
/** Appointment lifecycle status. */
|
|
8
|
+
export const APPOINTMENT_STATUS = [
|
|
9
|
+
"upcoming",
|
|
10
|
+
"completed",
|
|
11
|
+
"cancelled",
|
|
12
|
+
"no_show",
|
|
13
|
+
"rescheduled",
|
|
14
|
+
];
|
|
15
|
+
/** Payment status for appointment booking fee. */
|
|
16
|
+
export const PAYMENT_STATUS = ["pending", "paid", "refunded"];
|
|
17
|
+
/** Pre-booking enquiry status. */
|
|
18
|
+
export const ENQUIRY_STATUS = [
|
|
19
|
+
"pending",
|
|
20
|
+
"responded",
|
|
21
|
+
"converted",
|
|
22
|
+
"expired",
|
|
23
|
+
];
|
|
24
|
+
/** Counselor/clinic profile status. */
|
|
25
|
+
export const COUNSELOR_STATUS = [
|
|
26
|
+
"active",
|
|
27
|
+
"inactive",
|
|
28
|
+
"suspended",
|
|
29
|
+
"banned",
|
|
30
|
+
];
|
|
31
|
+
/** Platform subscription plans for providers. */
|
|
32
|
+
export const SUBSCRIPTION_PLAN = [
|
|
33
|
+
"monthly",
|
|
34
|
+
"quarterly",
|
|
35
|
+
"yearly",
|
|
36
|
+
];
|
|
37
|
+
/** Subscription status. */
|
|
38
|
+
export const SUBSCRIPTION_STATUS = [
|
|
39
|
+
"active",
|
|
40
|
+
"expired",
|
|
41
|
+
"cancelled",
|
|
42
|
+
];
|
|
43
|
+
/** Professional qualification types. */
|
|
44
|
+
export const QUALIFICATION_TYPE = [
|
|
45
|
+
"PhD_Psychology",
|
|
46
|
+
"PsyD",
|
|
47
|
+
"MD_Psychiatry",
|
|
48
|
+
"MSW",
|
|
49
|
+
"MA_Psychology",
|
|
50
|
+
"MA_Counseling",
|
|
51
|
+
"M_Phil_Clinical_Psychology",
|
|
52
|
+
"PGDGC",
|
|
53
|
+
"Certified_Life_Coach",
|
|
54
|
+
"Certified_NLP_Practitioner",
|
|
55
|
+
"RCI_Licensed",
|
|
56
|
+
"BACP_Accredited",
|
|
57
|
+
"APA_Licensed",
|
|
58
|
+
"B_Ed_Special_Education",
|
|
59
|
+
"Other",
|
|
60
|
+
];
|
|
61
|
+
/** Therapeutic approaches / methodologies. */
|
|
62
|
+
export const APPROACH = [
|
|
63
|
+
"CBT",
|
|
64
|
+
"DBT",
|
|
65
|
+
"Psychodynamic",
|
|
66
|
+
"Humanistic",
|
|
67
|
+
"Person_Centered",
|
|
68
|
+
"Solution_Focused",
|
|
69
|
+
"EMDR",
|
|
70
|
+
"Art_Therapy",
|
|
71
|
+
"Play_Therapy",
|
|
72
|
+
"Mindfulness_Based",
|
|
73
|
+
"Narrative_Therapy",
|
|
74
|
+
"Family_Systems",
|
|
75
|
+
"Gestalt",
|
|
76
|
+
"ACT",
|
|
77
|
+
"Motivational_Interviewing",
|
|
78
|
+
"Eclectic",
|
|
79
|
+
];
|
|
80
|
+
/** Clinic facilities. */
|
|
81
|
+
export const FACILITY = [
|
|
82
|
+
"waiting_room",
|
|
83
|
+
"play_area",
|
|
84
|
+
"wheelchair_accessible",
|
|
85
|
+
"parking",
|
|
86
|
+
"wifi",
|
|
87
|
+
"private_rooms",
|
|
88
|
+
"group_room",
|
|
89
|
+
"cctv",
|
|
90
|
+
"ac",
|
|
91
|
+
"garden_area",
|
|
92
|
+
];
|
|
93
|
+
/** Review tags — quick sentiment labels from clients. */
|
|
94
|
+
export const REVIEW_TAG = [
|
|
95
|
+
"empathetic",
|
|
96
|
+
"good_listener",
|
|
97
|
+
"practical_advice",
|
|
98
|
+
"professional",
|
|
99
|
+
"patient",
|
|
100
|
+
"non_judgmental",
|
|
101
|
+
"knowledgeable",
|
|
102
|
+
"punctual",
|
|
103
|
+
"flexible",
|
|
104
|
+
"supportive",
|
|
105
|
+
"warm",
|
|
106
|
+
"insightful",
|
|
107
|
+
];
|
|
108
|
+
/** Reasons to report a provider. */
|
|
109
|
+
export const REPORT_REASON = [
|
|
110
|
+
"unprofessional_conduct",
|
|
111
|
+
"fake_credentials",
|
|
112
|
+
"harassment",
|
|
113
|
+
"no_show",
|
|
114
|
+
"overcharging",
|
|
115
|
+
"spam",
|
|
116
|
+
"other",
|
|
117
|
+
];
|
|
118
|
+
/** Gender preference for counselor. */
|
|
119
|
+
export const GENDER_PREFERENCE = ["male", "female", "any"];
|
|
120
|
+
/** Sort options for search. */
|
|
121
|
+
export const SEARCH_SORT_BY = [
|
|
122
|
+
"distance",
|
|
123
|
+
"rating",
|
|
124
|
+
"fee_low",
|
|
125
|
+
"fee_high",
|
|
126
|
+
"experience",
|
|
127
|
+
"newest",
|
|
128
|
+
];
|
|
129
|
+
/** Session duration options in minutes. */
|
|
130
|
+
export const SESSION_DURATION = [30, 45, 60, 90];
|
|
131
|
+
//# sourceMappingURL=enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAU,CAAC;AAG9D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAW,CAAU,CAAC;AAGnD,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,cAAc,CAAU,CAAC;AAGrE,oCAAoC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU;IACV,WAAW;IACX,WAAW;IACX,SAAS;IACT,aAAa;CACL,CAAC;AAGX,kDAAkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;AAGvE,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,WAAW;IACX,WAAW;IACX,SAAS;CACD,CAAC;AAGX,uCAAuC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,UAAU;IACV,WAAW;IACX,QAAQ;CACA,CAAC;AAGX,iDAAiD;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS;IACT,WAAW;IACX,QAAQ;CACA,CAAC;AAGX,2BAA2B;AAC3B,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,SAAS;IACT,WAAW;CACH,CAAC;AAGX,wCAAwC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,gBAAgB;IAChB,MAAM;IACN,eAAe;IACf,KAAK;IACL,eAAe;IACf,eAAe;IACf,4BAA4B;IAC5B,OAAO;IACP,sBAAsB;IACtB,4BAA4B;IAC5B,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,OAAO;CACC,CAAC;AAGX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK;IACL,KAAK;IACL,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,MAAM;IACN,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;IAChB,SAAS;IACT,KAAK;IACL,2BAA2B;IAC3B,UAAU;CACF,CAAC;AAGX,yBAAyB;AACzB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,WAAW;IACX,uBAAuB;IACvB,SAAS;IACT,MAAM;IACN,eAAe;IACf,YAAY;IACZ,MAAM;IACN,IAAI;IACJ,aAAa;CACL,CAAC;AAGX,yDAAyD;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,SAAS;IACT,gBAAgB;IAChB,eAAe;IACf,UAAU;IACV,UAAU;IACV,YAAY;IACZ,MAAM;IACN,YAAY;CACJ,CAAC;AAGX,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,wBAAwB;IACxB,kBAAkB;IAClB,YAAY;IACZ,SAAS;IACT,cAAc;IACd,MAAM;IACN,OAAO;CACC,CAAC;AAGX,uCAAuC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAGpE,+BAA+B;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU;IACV,QAAQ;IACR,SAAS;IACT,UAAU;IACV,YAAY;IACZ,QAAQ;CACA,CAAC;AAGX,2CAA2C;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC","sourcesContent":["/** Provider type — individual counselor or counseling clinic. */\nexport const PROVIDER_TYPE = [\"counselor\", \"clinic\"] as const;\nexport type ProviderType = (typeof PROVIDER_TYPE)[number];\n\n/** Session mode — how counseling is conducted. Phase 1: in_person only. */\nexport const SESSION_MODE = [\"in_person\"] as const;\nexport type SessionMode = (typeof SESSION_MODE)[number];\n\n/** Revenue model — how the platform earns from the provider. */\nexport const REVENUE_MODEL = [\"commission\", \"subscription\"] as const;\nexport type RevenueModel = (typeof REVENUE_MODEL)[number];\n\n/** Appointment lifecycle status. */\nexport const APPOINTMENT_STATUS = [\n \"upcoming\",\n \"completed\",\n \"cancelled\",\n \"no_show\",\n \"rescheduled\",\n] as const;\nexport type AppointmentStatus = (typeof APPOINTMENT_STATUS)[number];\n\n/** Payment status for appointment booking fee. */\nexport const PAYMENT_STATUS = [\"pending\", \"paid\", \"refunded\"] as const;\nexport type PaymentStatus = (typeof PAYMENT_STATUS)[number];\n\n/** Pre-booking enquiry status. */\nexport const ENQUIRY_STATUS = [\n \"pending\",\n \"responded\",\n \"converted\",\n \"expired\",\n] as const;\nexport type EnquiryStatus = (typeof ENQUIRY_STATUS)[number];\n\n/** Counselor/clinic profile status. */\nexport const COUNSELOR_STATUS = [\n \"active\",\n \"inactive\",\n \"suspended\",\n \"banned\",\n] as const;\nexport type CounselorStatus = (typeof COUNSELOR_STATUS)[number];\n\n/** Platform subscription plans for providers. */\nexport const SUBSCRIPTION_PLAN = [\n \"monthly\",\n \"quarterly\",\n \"yearly\",\n] as const;\nexport type SubscriptionPlan = (typeof SUBSCRIPTION_PLAN)[number];\n\n/** Subscription status. */\nexport const SUBSCRIPTION_STATUS = [\n \"active\",\n \"expired\",\n \"cancelled\",\n] as const;\nexport type SubscriptionStatus = (typeof SUBSCRIPTION_STATUS)[number];\n\n/** Professional qualification types. */\nexport const QUALIFICATION_TYPE = [\n \"PhD_Psychology\",\n \"PsyD\",\n \"MD_Psychiatry\",\n \"MSW\",\n \"MA_Psychology\",\n \"MA_Counseling\",\n \"M_Phil_Clinical_Psychology\",\n \"PGDGC\",\n \"Certified_Life_Coach\",\n \"Certified_NLP_Practitioner\",\n \"RCI_Licensed\",\n \"BACP_Accredited\",\n \"APA_Licensed\",\n \"B_Ed_Special_Education\",\n \"Other\",\n] as const;\nexport type QualificationType = (typeof QUALIFICATION_TYPE)[number];\n\n/** Therapeutic approaches / methodologies. */\nexport const APPROACH = [\n \"CBT\",\n \"DBT\",\n \"Psychodynamic\",\n \"Humanistic\",\n \"Person_Centered\",\n \"Solution_Focused\",\n \"EMDR\",\n \"Art_Therapy\",\n \"Play_Therapy\",\n \"Mindfulness_Based\",\n \"Narrative_Therapy\",\n \"Family_Systems\",\n \"Gestalt\",\n \"ACT\",\n \"Motivational_Interviewing\",\n \"Eclectic\",\n] as const;\nexport type Approach = (typeof APPROACH)[number];\n\n/** Clinic facilities. */\nexport const FACILITY = [\n \"waiting_room\",\n \"play_area\",\n \"wheelchair_accessible\",\n \"parking\",\n \"wifi\",\n \"private_rooms\",\n \"group_room\",\n \"cctv\",\n \"ac\",\n \"garden_area\",\n] as const;\nexport type Facility = (typeof FACILITY)[number];\n\n/** Review tags — quick sentiment labels from clients. */\nexport const REVIEW_TAG = [\n \"empathetic\",\n \"good_listener\",\n \"practical_advice\",\n \"professional\",\n \"patient\",\n \"non_judgmental\",\n \"knowledgeable\",\n \"punctual\",\n \"flexible\",\n \"supportive\",\n \"warm\",\n \"insightful\",\n] as const;\nexport type ReviewTag = (typeof REVIEW_TAG)[number];\n\n/** Reasons to report a provider. */\nexport const REPORT_REASON = [\n \"unprofessional_conduct\",\n \"fake_credentials\",\n \"harassment\",\n \"no_show\",\n \"overcharging\",\n \"spam\",\n \"other\",\n] as const;\nexport type ReportReason = (typeof REPORT_REASON)[number];\n\n/** Gender preference for counselor. */\nexport const GENDER_PREFERENCE = [\"male\", \"female\", \"any\"] as const;\nexport type GenderPreference = (typeof GENDER_PREFERENCE)[number];\n\n/** Sort options for search. */\nexport const SEARCH_SORT_BY = [\n \"distance\",\n \"rating\",\n \"fee_low\",\n \"fee_high\",\n \"experience\",\n \"newest\",\n] as const;\nexport type SearchSortBy = (typeof SEARCH_SORT_BY)[number];\n\n/** Session duration options in minutes. */\nexport const SESSION_DURATION = [30, 45, 60, 90] as const;\nexport type SessionDuration = (typeof SESSION_DURATION)[number];\n"]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { PROVIDER_TYPE, type ProviderType, SESSION_MODE, type SessionMode, REVENUE_MODEL, type RevenueModel, APPOINTMENT_STATUS, type AppointmentStatus, PAYMENT_STATUS, type PaymentStatus, ENQUIRY_STATUS, type EnquiryStatus, COUNSELOR_STATUS, type CounselorStatus, SUBSCRIPTION_PLAN, type SubscriptionPlan, SUBSCRIPTION_STATUS, type SubscriptionStatus, QUALIFICATION_TYPE, type QualificationType, APPROACH, type Approach, FACILITY, type Facility, REVIEW_TAG, type ReviewTag, REPORT_REASON, type ReportReason, GENDER_PREFERENCE, type GenderPreference, SEARCH_SORT_BY, type SearchSortBy, SESSION_DURATION, type SessionDuration, } from "./enums.js";
|
|
2
|
+
export { COUNSELING_CATEGORY, type CounselingCategory, MENTAL_HEALTH_ISSUES, NEURODIVERSITY_ISSUES, RELATIONSHIP_ISSUES, FAMILY_ISSUES, CAREER_ISSUES, CHILD_ADOLESCENT_ISSUES, ADDICTION_ISSUES, SEXUAL_HEALTH_ISSUES, TRAUMA_ISSUES, WELLNESS_ISSUES, CORPORATE_ISSUES, LEGAL_ISSUES, ALL_ISSUES, type CounselingIssue, ISSUE_CATALOG, } from "./specializations.js";
|
|
3
|
+
export { createCounselorProfileSchema, type CreateCounselorProfileInput, updateCounselorProfileSchema, type UpdateCounselorProfileInput, } from "./counselor-profile.schema.js";
|
|
4
|
+
export { createClinicProfileSchema, type CreateClinicProfileInput, updateClinicProfileSchema, type UpdateClinicProfileInput, } from "./clinic-profile.schema.js";
|
|
5
|
+
export { createAppointmentSchema, type CreateAppointmentInput, rescheduleAppointmentSchema, type RescheduleAppointmentInput, cancelAppointmentSchema, type CancelAppointmentInput, appointmentListQuerySchema, type AppointmentListQuery, availableSlotsQuerySchema, type AvailableSlotsQuery, } from "./appointment.schema.js";
|
|
6
|
+
export { createReviewSchema, type CreateReviewInput, reviewListQuerySchema, type ReviewListQuery, } from "./review.schema.js";
|
|
7
|
+
export { searchCounselingQuerySchema, type SearchCounselingQuery, } from "./search.schema.js";
|
|
8
|
+
export { createEnquirySchema, type CreateEnquiryInput, respondEnquirySchema, type RespondEnquiryInput, enquiryListQuerySchema, type EnquiryListQuery, } from "./enquiry.schema.js";
|
|
9
|
+
export { startChatSchema, type StartChatInput, sendMessageSchema, type SendMessageInput, messageListQuerySchema, type MessageListQuery, chatListQuerySchema, type ChatListQuery, } from "./chat.schema.js";
|
|
10
|
+
export { purchaseSubscriptionSchema, type PurchaseSubscriptionInput, } from "./subscription.schema.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,YAAY,EACZ,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,cAAc,EACd,KAAK,aAAa,EAClB,cAAc,EACd,KAAK,aAAa,EAClB,gBAAgB,EAChB,KAAK,eAAe,EACpB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,QAAQ,EACR,KAAK,QAAQ,EACb,QAAQ,EACR,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,SAAS,EACd,aAAa,EACb,KAAK,YAAY,EACjB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,YAAY,EACjB,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,KAAK,eAAe,EACpB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,4BAA4B,EAC5B,KAAK,2BAA2B,EAChC,4BAA4B,EAC5B,KAAK,2BAA2B,GACjC,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,yBAAyB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,2BAA2B,EAC3B,KAAK,0BAA0B,EAC/B,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,2BAA2B,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,KAAK,cAAc,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,0BAA0B,EAC1B,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// ─── Enums & Constants ───────────────────────────────────────────────
|
|
2
|
+
export { PROVIDER_TYPE, SESSION_MODE, REVENUE_MODEL, APPOINTMENT_STATUS, PAYMENT_STATUS, ENQUIRY_STATUS, COUNSELOR_STATUS, SUBSCRIPTION_PLAN, SUBSCRIPTION_STATUS, QUALIFICATION_TYPE, APPROACH, FACILITY, REVIEW_TAG, REPORT_REASON, GENDER_PREFERENCE, SEARCH_SORT_BY, SESSION_DURATION, } from "./enums.js";
|
|
3
|
+
// ─── Specialization Catalog ─────────────────────────────────────────
|
|
4
|
+
export { COUNSELING_CATEGORY, MENTAL_HEALTH_ISSUES, NEURODIVERSITY_ISSUES, RELATIONSHIP_ISSUES, FAMILY_ISSUES, CAREER_ISSUES, CHILD_ADOLESCENT_ISSUES, ADDICTION_ISSUES, SEXUAL_HEALTH_ISSUES, TRAUMA_ISSUES, WELLNESS_ISSUES, CORPORATE_ISSUES, LEGAL_ISSUES, ALL_ISSUES, ISSUE_CATALOG, } from "./specializations.js";
|
|
5
|
+
// ─── Counselor Profile ──────────────────────────────────────────────
|
|
6
|
+
export { createCounselorProfileSchema, updateCounselorProfileSchema, } from "./counselor-profile.schema.js";
|
|
7
|
+
// ─── Clinic Profile ─────────────────────────────────────────────────
|
|
8
|
+
export { createClinicProfileSchema, updateClinicProfileSchema, } from "./clinic-profile.schema.js";
|
|
9
|
+
// ─── Appointment ────────────────────────────────────────────────────
|
|
10
|
+
export { createAppointmentSchema, rescheduleAppointmentSchema, cancelAppointmentSchema, appointmentListQuerySchema, availableSlotsQuerySchema, } from "./appointment.schema.js";
|
|
11
|
+
// ─── Review ─────────────────────────────────────────────────────────
|
|
12
|
+
export { createReviewSchema, reviewListQuerySchema, } from "./review.schema.js";
|
|
13
|
+
// ─── Search ─────────────────────────────────────────────────────────
|
|
14
|
+
export { searchCounselingQuerySchema, } from "./search.schema.js";
|
|
15
|
+
// ─── Enquiry ────────────────────────────────────────────────────────
|
|
16
|
+
export { createEnquirySchema, respondEnquirySchema, enquiryListQuerySchema, } from "./enquiry.schema.js";
|
|
17
|
+
// ─── Chat ───────────────────────────────────────────────────────────
|
|
18
|
+
export { startChatSchema, sendMessageSchema, messageListQuerySchema, chatListQuerySchema, } from "./chat.schema.js";
|
|
19
|
+
// ─── Subscription ───────────────────────────────────────────────────
|
|
20
|
+
export { purchaseSubscriptionSchema, } from "./subscription.schema.js";
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EACL,aAAa,EAEb,YAAY,EAEZ,aAAa,EAEb,kBAAkB,EAElB,cAAc,EAEd,cAAc,EAEd,gBAAgB,EAEhB,iBAAiB,EAEjB,mBAAmB,EAEnB,kBAAkB,EAElB,QAAQ,EAER,QAAQ,EAER,UAAU,EAEV,aAAa,EAEb,iBAAiB,EAEjB,cAAc,EAEd,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AACvE,OAAO,EACL,mBAAmB,EAEnB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EAEV,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,uEAAuE;AACvE,OAAO,EACL,4BAA4B,EAE5B,4BAA4B,GAE7B,MAAM,+BAA+B,CAAC;AAEvC,uEAAuE;AACvE,OAAO,EACL,yBAAyB,EAEzB,yBAAyB,GAE1B,MAAM,4BAA4B,CAAC;AAEpC,uEAAuE;AACvE,OAAO,EACL,uBAAuB,EAEvB,2BAA2B,EAE3B,uBAAuB,EAEvB,0BAA0B,EAE1B,yBAAyB,GAE1B,MAAM,yBAAyB,CAAC;AAEjC,uEAAuE;AACvE,OAAO,EACL,kBAAkB,EAElB,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAE5B,uEAAuE;AACvE,OAAO,EACL,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAE5B,uEAAuE;AACvE,OAAO,EACL,mBAAmB,EAEnB,oBAAoB,EAEpB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAC;AAE7B,uEAAuE;AACvE,OAAO,EACL,eAAe,EAEf,iBAAiB,EAEjB,sBAAsB,EAEtB,mBAAmB,GAEpB,MAAM,kBAAkB,CAAC;AAE1B,uEAAuE;AACvE,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC","sourcesContent":["// ─── Enums & Constants ───────────────────────────────────────────────\nexport {\n PROVIDER_TYPE,\n type ProviderType,\n SESSION_MODE,\n type SessionMode,\n REVENUE_MODEL,\n type RevenueModel,\n APPOINTMENT_STATUS,\n type AppointmentStatus,\n PAYMENT_STATUS,\n type PaymentStatus,\n ENQUIRY_STATUS,\n type EnquiryStatus,\n COUNSELOR_STATUS,\n type CounselorStatus,\n SUBSCRIPTION_PLAN,\n type SubscriptionPlan,\n SUBSCRIPTION_STATUS,\n type SubscriptionStatus,\n QUALIFICATION_TYPE,\n type QualificationType,\n APPROACH,\n type Approach,\n FACILITY,\n type Facility,\n REVIEW_TAG,\n type ReviewTag,\n REPORT_REASON,\n type ReportReason,\n GENDER_PREFERENCE,\n type GenderPreference,\n SEARCH_SORT_BY,\n type SearchSortBy,\n SESSION_DURATION,\n type SessionDuration,\n} from \"./enums.js\";\n\n// ─── Specialization Catalog ─────────────────────────────────────────\nexport {\n COUNSELING_CATEGORY,\n type CounselingCategory,\n MENTAL_HEALTH_ISSUES,\n NEURODIVERSITY_ISSUES,\n RELATIONSHIP_ISSUES,\n FAMILY_ISSUES,\n CAREER_ISSUES,\n CHILD_ADOLESCENT_ISSUES,\n ADDICTION_ISSUES,\n SEXUAL_HEALTH_ISSUES,\n TRAUMA_ISSUES,\n WELLNESS_ISSUES,\n CORPORATE_ISSUES,\n LEGAL_ISSUES,\n ALL_ISSUES,\n type CounselingIssue,\n ISSUE_CATALOG,\n} from \"./specializations.js\";\n\n// ─── Counselor Profile ──────────────────────────────────────────────\nexport {\n createCounselorProfileSchema,\n type CreateCounselorProfileInput,\n updateCounselorProfileSchema,\n type UpdateCounselorProfileInput,\n} from \"./counselor-profile.schema.js\";\n\n// ─── Clinic Profile ─────────────────────────────────────────────────\nexport {\n createClinicProfileSchema,\n type CreateClinicProfileInput,\n updateClinicProfileSchema,\n type UpdateClinicProfileInput,\n} from \"./clinic-profile.schema.js\";\n\n// ─── Appointment ────────────────────────────────────────────────────\nexport {\n createAppointmentSchema,\n type CreateAppointmentInput,\n rescheduleAppointmentSchema,\n type RescheduleAppointmentInput,\n cancelAppointmentSchema,\n type CancelAppointmentInput,\n appointmentListQuerySchema,\n type AppointmentListQuery,\n availableSlotsQuerySchema,\n type AvailableSlotsQuery,\n} from \"./appointment.schema.js\";\n\n// ─── Review ─────────────────────────────────────────────────────────\nexport {\n createReviewSchema,\n type CreateReviewInput,\n reviewListQuerySchema,\n type ReviewListQuery,\n} from \"./review.schema.js\";\n\n// ─── Search ─────────────────────────────────────────────────────────\nexport {\n searchCounselingQuerySchema,\n type SearchCounselingQuery,\n} from \"./search.schema.js\";\n\n// ─── Enquiry ────────────────────────────────────────────────────────\nexport {\n createEnquirySchema,\n type CreateEnquiryInput,\n respondEnquirySchema,\n type RespondEnquiryInput,\n enquiryListQuerySchema,\n type EnquiryListQuery,\n} from \"./enquiry.schema.js\";\n\n// ─── Chat ───────────────────────────────────────────────────────────\nexport {\n startChatSchema,\n type StartChatInput,\n sendMessageSchema,\n type SendMessageInput,\n messageListQuerySchema,\n type MessageListQuery,\n chatListQuerySchema,\n type ChatListQuery,\n} from \"./chat.schema.js\";\n\n// ─── Subscription ───────────────────────────────────────────────────\nexport {\n purchaseSubscriptionSchema,\n type PurchaseSubscriptionInput,\n} from \"./subscription.schema.js\";\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const createReviewSchema: z.ZodObject<{
|
|
3
|
+
providerId: z.ZodString;
|
|
4
|
+
appointmentId: z.ZodString;
|
|
5
|
+
rating: z.ZodNumber;
|
|
6
|
+
title: z.ZodOptional<z.ZodString>;
|
|
7
|
+
comment: z.ZodString;
|
|
8
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
9
|
+
empathetic: "empathetic";
|
|
10
|
+
good_listener: "good_listener";
|
|
11
|
+
practical_advice: "practical_advice";
|
|
12
|
+
professional: "professional";
|
|
13
|
+
patient: "patient";
|
|
14
|
+
non_judgmental: "non_judgmental";
|
|
15
|
+
knowledgeable: "knowledgeable";
|
|
16
|
+
punctual: "punctual";
|
|
17
|
+
flexible: "flexible";
|
|
18
|
+
supportive: "supportive";
|
|
19
|
+
warm: "warm";
|
|
20
|
+
insightful: "insightful";
|
|
21
|
+
}>>>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type CreateReviewInput = z.infer<typeof createReviewSchema>;
|
|
24
|
+
export declare const reviewListQuerySchema: z.ZodObject<{
|
|
25
|
+
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
26
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
27
|
+
sortBy: z.ZodDefault<z.ZodEnum<{
|
|
28
|
+
newest: "newest";
|
|
29
|
+
highest: "highest";
|
|
30
|
+
lowest: "lowest";
|
|
31
|
+
}>>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export type ReviewListQuery = z.infer<typeof reviewListQuerySchema>;
|
|
34
|
+
//# sourceMappingURL=review.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.schema.d.ts","sourceRoot":"","sources":["../src/review.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;iBAO7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAInE,eAAO,MAAM,qBAAqB;;;;;;;;iBAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { REVIEW_TAG } from "./enums.js";
|
|
3
|
+
// ─── Create ──────────────────────────────────────────────────────────
|
|
4
|
+
export const createReviewSchema = z.object({
|
|
5
|
+
providerId: z.string().min(1),
|
|
6
|
+
appointmentId: z.string().min(1),
|
|
7
|
+
rating: z.number().int().min(1).max(5),
|
|
8
|
+
title: z.string().trim().min(3).max(100).optional(),
|
|
9
|
+
comment: z.string().trim().min(10).max(1000),
|
|
10
|
+
tags: z.array(z.enum(REVIEW_TAG)).max(5).optional(),
|
|
11
|
+
});
|
|
12
|
+
// ─── Query ───────────────────────────────────────────────────────────
|
|
13
|
+
export const reviewListQuerySchema = z.object({
|
|
14
|
+
page: z.coerce.number().int().min(1).default(1),
|
|
15
|
+
limit: z.coerce.number().int().min(1).max(50).default(20),
|
|
16
|
+
sortBy: z.enum(["newest", "highest", "lowest"]).default("newest"),
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=review.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.schema.js","sourceRoot":"","sources":["../src/review.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,wEAAwE;AAExE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAClE,CAAC,CAAC","sourcesContent":["import { z } from \"zod\";\nimport { REVIEW_TAG } from \"./enums.js\";\n\n// ─── Create ──────────────────────────────────────────────────────────\n\nexport const createReviewSchema = z.object({\n providerId: z.string().min(1),\n appointmentId: z.string().min(1),\n rating: z.number().int().min(1).max(5),\n title: z.string().trim().min(3).max(100).optional(),\n comment: z.string().trim().min(10).max(1000),\n tags: z.array(z.enum(REVIEW_TAG)).max(5).optional(),\n});\n\nexport type CreateReviewInput = z.infer<typeof createReviewSchema>;\n\n// ─── Query ───────────────────────────────────────────────────────────\n\nexport const reviewListQuerySchema = z.object({\n page: z.coerce.number().int().min(1).default(1),\n limit: z.coerce.number().int().min(1).max(50).default(20),\n sortBy: z.enum([\"newest\", \"highest\", \"lowest\"]).default(\"newest\"),\n});\n\nexport type ReviewListQuery = z.infer<typeof reviewListQuerySchema>;\n"]}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const searchCounselingQuerySchema: z.ZodObject<{
|
|
3
|
+
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
4
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
5
|
+
providerType: z.ZodDefault<z.ZodEnum<{
|
|
6
|
+
counselor: "counselor";
|
|
7
|
+
clinic: "clinic";
|
|
8
|
+
all: "all";
|
|
9
|
+
}>>;
|
|
10
|
+
category: z.ZodOptional<z.ZodEnum<{
|
|
11
|
+
mental_health: "mental_health";
|
|
12
|
+
neurodiversity: "neurodiversity";
|
|
13
|
+
relationship: "relationship";
|
|
14
|
+
family: "family";
|
|
15
|
+
career: "career";
|
|
16
|
+
child_adolescent: "child_adolescent";
|
|
17
|
+
addiction: "addiction";
|
|
18
|
+
sexual_health: "sexual_health";
|
|
19
|
+
trauma: "trauma";
|
|
20
|
+
wellness: "wellness";
|
|
21
|
+
corporate: "corporate";
|
|
22
|
+
legal: "legal";
|
|
23
|
+
}>>;
|
|
24
|
+
issue: z.ZodOptional<z.ZodEnum<{
|
|
25
|
+
harassment: "harassment";
|
|
26
|
+
anxiety: "anxiety";
|
|
27
|
+
depression: "depression";
|
|
28
|
+
stress: "stress";
|
|
29
|
+
ocd: "ocd";
|
|
30
|
+
ptsd: "ptsd";
|
|
31
|
+
bipolar: "bipolar";
|
|
32
|
+
schizophrenia: "schizophrenia";
|
|
33
|
+
grief: "grief";
|
|
34
|
+
anger_management: "anger_management";
|
|
35
|
+
panic_disorder: "panic_disorder";
|
|
36
|
+
phobias: "phobias";
|
|
37
|
+
eating_disorders: "eating_disorders";
|
|
38
|
+
adhd: "adhd";
|
|
39
|
+
autism_asd: "autism_asd";
|
|
40
|
+
dyslexia: "dyslexia";
|
|
41
|
+
sensory_processing: "sensory_processing";
|
|
42
|
+
giftedness: "giftedness";
|
|
43
|
+
tourettes: "tourettes";
|
|
44
|
+
dyscalculia: "dyscalculia";
|
|
45
|
+
learning_disabilities: "learning_disabilities";
|
|
46
|
+
marriage_counseling: "marriage_counseling";
|
|
47
|
+
couple_therapy: "couple_therapy";
|
|
48
|
+
pre_marital: "pre_marital";
|
|
49
|
+
divorce_separation: "divorce_separation";
|
|
50
|
+
infidelity: "infidelity";
|
|
51
|
+
communication_issues: "communication_issues";
|
|
52
|
+
long_distance: "long_distance";
|
|
53
|
+
parenting: "parenting";
|
|
54
|
+
co_parenting: "co_parenting";
|
|
55
|
+
family_conflict: "family_conflict";
|
|
56
|
+
blended_families: "blended_families";
|
|
57
|
+
elder_care_stress: "elder_care_stress";
|
|
58
|
+
sibling_issues: "sibling_issues";
|
|
59
|
+
adoption: "adoption";
|
|
60
|
+
career_change: "career_change";
|
|
61
|
+
job_stress: "job_stress";
|
|
62
|
+
burnout: "burnout";
|
|
63
|
+
work_life_balance: "work_life_balance";
|
|
64
|
+
interview_anxiety: "interview_anxiety";
|
|
65
|
+
leadership_coaching: "leadership_coaching";
|
|
66
|
+
workplace_conflict: "workplace_conflict";
|
|
67
|
+
behavioral_issues: "behavioral_issues";
|
|
68
|
+
school_anxiety: "school_anxiety";
|
|
69
|
+
bullying: "bullying";
|
|
70
|
+
teen_depression: "teen_depression";
|
|
71
|
+
identity_issues: "identity_issues";
|
|
72
|
+
academic_pressure: "academic_pressure";
|
|
73
|
+
screen_addiction: "screen_addiction";
|
|
74
|
+
substance_abuse: "substance_abuse";
|
|
75
|
+
alcohol: "alcohol";
|
|
76
|
+
gambling: "gambling";
|
|
77
|
+
internet_gaming: "internet_gaming";
|
|
78
|
+
smoking: "smoking";
|
|
79
|
+
pornography: "pornography";
|
|
80
|
+
shopping: "shopping";
|
|
81
|
+
sexual_dysfunction: "sexual_dysfunction";
|
|
82
|
+
gender_identity: "gender_identity";
|
|
83
|
+
lgbtq_support: "lgbtq_support";
|
|
84
|
+
intimacy_issues: "intimacy_issues";
|
|
85
|
+
abuse_survivors: "abuse_survivors";
|
|
86
|
+
domestic_violence: "domestic_violence";
|
|
87
|
+
childhood_trauma: "childhood_trauma";
|
|
88
|
+
accident_recovery: "accident_recovery";
|
|
89
|
+
war_conflict: "war_conflict";
|
|
90
|
+
natural_disaster: "natural_disaster";
|
|
91
|
+
stress_management: "stress_management";
|
|
92
|
+
mindfulness: "mindfulness";
|
|
93
|
+
sleep_issues: "sleep_issues";
|
|
94
|
+
self_esteem: "self_esteem";
|
|
95
|
+
life_transitions: "life_transitions";
|
|
96
|
+
expat_adjustment: "expat_adjustment";
|
|
97
|
+
retirement: "retirement";
|
|
98
|
+
eap_counseling: "eap_counseling";
|
|
99
|
+
executive_coaching: "executive_coaching";
|
|
100
|
+
team_dynamics: "team_dynamics";
|
|
101
|
+
diversity_inclusion: "diversity_inclusion";
|
|
102
|
+
pre_litigation_counseling: "pre_litigation_counseling";
|
|
103
|
+
mediation: "mediation";
|
|
104
|
+
custody_counseling: "custody_counseling";
|
|
105
|
+
victim_advocacy: "victim_advocacy";
|
|
106
|
+
}>>;
|
|
107
|
+
approach: z.ZodOptional<z.ZodEnum<{
|
|
108
|
+
CBT: "CBT";
|
|
109
|
+
DBT: "DBT";
|
|
110
|
+
Psychodynamic: "Psychodynamic";
|
|
111
|
+
Humanistic: "Humanistic";
|
|
112
|
+
Person_Centered: "Person_Centered";
|
|
113
|
+
Solution_Focused: "Solution_Focused";
|
|
114
|
+
EMDR: "EMDR";
|
|
115
|
+
Art_Therapy: "Art_Therapy";
|
|
116
|
+
Play_Therapy: "Play_Therapy";
|
|
117
|
+
Mindfulness_Based: "Mindfulness_Based";
|
|
118
|
+
Narrative_Therapy: "Narrative_Therapy";
|
|
119
|
+
Family_Systems: "Family_Systems";
|
|
120
|
+
Gestalt: "Gestalt";
|
|
121
|
+
ACT: "ACT";
|
|
122
|
+
Motivational_Interviewing: "Motivational_Interviewing";
|
|
123
|
+
Eclectic: "Eclectic";
|
|
124
|
+
}>>;
|
|
125
|
+
language: z.ZodOptional<z.ZodString>;
|
|
126
|
+
minFee: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
127
|
+
maxFee: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
128
|
+
minExperience: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
129
|
+
minRating: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
130
|
+
genderPreference: z.ZodOptional<z.ZodEnum<{
|
|
131
|
+
male: "male";
|
|
132
|
+
female: "female";
|
|
133
|
+
any: "any";
|
|
134
|
+
}>>;
|
|
135
|
+
lng: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
136
|
+
lat: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
137
|
+
radiusKm: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
138
|
+
search: z.ZodOptional<z.ZodString>;
|
|
139
|
+
sortBy: z.ZodDefault<z.ZodEnum<{
|
|
140
|
+
distance: "distance";
|
|
141
|
+
rating: "rating";
|
|
142
|
+
fee_low: "fee_low";
|
|
143
|
+
fee_high: "fee_high";
|
|
144
|
+
experience: "experience";
|
|
145
|
+
newest: "newest";
|
|
146
|
+
}>>;
|
|
147
|
+
}, z.core.$strip>;
|
|
148
|
+
export type SearchCounselingQuery = z.infer<typeof searchCounselingQuerySchema>;
|
|
149
|
+
//# sourceMappingURL=search.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.schema.d.ts","sourceRoot":"","sources":["../src/search.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { PROVIDER_TYPE, APPROACH, GENDER_PREFERENCE, SEARCH_SORT_BY, } from "./enums.js";
|
|
3
|
+
import { COUNSELING_CATEGORY, ALL_ISSUES } from "./specializations.js";
|
|
4
|
+
export const searchCounselingQuerySchema = z.object({
|
|
5
|
+
page: z.coerce.number().int().min(1).default(1),
|
|
6
|
+
limit: z.coerce.number().int().min(1).max(50).default(20),
|
|
7
|
+
// Provider type filter
|
|
8
|
+
providerType: z.enum([...PROVIDER_TYPE, "all"]).default("all"),
|
|
9
|
+
// Specialization filters
|
|
10
|
+
category: z.enum(COUNSELING_CATEGORY).optional(),
|
|
11
|
+
issue: z.enum(ALL_ISSUES).optional(),
|
|
12
|
+
approach: z.enum(APPROACH).optional(),
|
|
13
|
+
// Language filter
|
|
14
|
+
language: z.string().trim().max(50).optional(),
|
|
15
|
+
// Fee range (in paise — filters on consultation fee)
|
|
16
|
+
minFee: z.coerce.number().int().min(0).optional(),
|
|
17
|
+
maxFee: z.coerce.number().int().min(0).optional(),
|
|
18
|
+
// Experience
|
|
19
|
+
minExperience: z.coerce.number().int().min(0).optional(),
|
|
20
|
+
// Rating
|
|
21
|
+
minRating: z.coerce.number().min(1).max(5).optional(),
|
|
22
|
+
// Counselor-specific
|
|
23
|
+
genderPreference: z.enum(GENDER_PREFERENCE).optional(),
|
|
24
|
+
// Geolocation
|
|
25
|
+
lng: z.coerce.number().min(-180).max(180).optional(),
|
|
26
|
+
lat: z.coerce.number().min(-90).max(90).optional(),
|
|
27
|
+
radiusKm: z.coerce.number().min(1).max(100).default(10),
|
|
28
|
+
// Free text
|
|
29
|
+
search: z.string().trim().max(120).optional(),
|
|
30
|
+
// Sort
|
|
31
|
+
sortBy: z.enum(SEARCH_SORT_BY).default("distance"),
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=search.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.schema.js","sourceRoot":"","sources":["../src/search.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAEzD,uBAAuB;IACvB,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,EAAE,KAAK,CAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAEvE,yBAAyB;IACzB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IAChD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;IAErC,kBAAkB;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAE9C,qDAAqD;IACrD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEjD,aAAa;IACb,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAExD,SAAS;IACT,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAErD,qBAAqB;IACrB,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;IAEtD,cAAc;IACd,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACpD,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAEvD,YAAY;IACZ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAE7C,OAAO;IACP,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;CACnD,CAAC,CAAC","sourcesContent":["import { z } from \"zod\";\nimport {\n PROVIDER_TYPE,\n APPROACH,\n GENDER_PREFERENCE,\n SEARCH_SORT_BY,\n} from \"./enums.js\";\nimport { COUNSELING_CATEGORY, ALL_ISSUES } from \"./specializations.js\";\n\nexport const searchCounselingQuerySchema = z.object({\n page: z.coerce.number().int().min(1).default(1),\n limit: z.coerce.number().int().min(1).max(50).default(20),\n\n // Provider type filter\n providerType: z.enum([...PROVIDER_TYPE, \"all\"] as const).default(\"all\"),\n\n // Specialization filters\n category: z.enum(COUNSELING_CATEGORY).optional(),\n issue: z.enum(ALL_ISSUES).optional(),\n approach: z.enum(APPROACH).optional(),\n\n // Language filter\n language: z.string().trim().max(50).optional(),\n\n // Fee range (in paise — filters on consultation fee)\n minFee: z.coerce.number().int().min(0).optional(),\n maxFee: z.coerce.number().int().min(0).optional(),\n\n // Experience\n minExperience: z.coerce.number().int().min(0).optional(),\n\n // Rating\n minRating: z.coerce.number().min(1).max(5).optional(),\n\n // Counselor-specific\n genderPreference: z.enum(GENDER_PREFERENCE).optional(),\n\n // Geolocation\n lng: z.coerce.number().min(-180).max(180).optional(),\n lat: z.coerce.number().min(-90).max(90).optional(),\n radiusKm: z.coerce.number().min(1).max(100).default(10),\n\n // Free text\n search: z.string().trim().max(120).optional(),\n\n // Sort\n sortBy: z.enum(SEARCH_SORT_BY).default(\"distance\"),\n});\n\nexport type SearchCounselingQuery = z.infer<typeof searchCounselingQuerySchema>;\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Top-level counseling categories. */
|
|
2
|
+
export declare const COUNSELING_CATEGORY: readonly ["mental_health", "neurodiversity", "relationship", "family", "career", "child_adolescent", "addiction", "sexual_health", "trauma", "wellness", "corporate", "legal"];
|
|
3
|
+
export type CounselingCategory = (typeof COUNSELING_CATEGORY)[number];
|
|
4
|
+
/** Mental health issues. */
|
|
5
|
+
export declare const MENTAL_HEALTH_ISSUES: readonly ["anxiety", "depression", "stress", "ocd", "ptsd", "bipolar", "schizophrenia", "grief", "anger_management", "panic_disorder", "phobias", "eating_disorders"];
|
|
6
|
+
/** Neurodiversity issues. */
|
|
7
|
+
export declare const NEURODIVERSITY_ISSUES: readonly ["adhd", "autism_asd", "dyslexia", "sensory_processing", "giftedness", "tourettes", "dyscalculia", "learning_disabilities"];
|
|
8
|
+
/** Relationship issues. */
|
|
9
|
+
export declare const RELATIONSHIP_ISSUES: readonly ["marriage_counseling", "couple_therapy", "pre_marital", "divorce_separation", "infidelity", "communication_issues", "long_distance"];
|
|
10
|
+
/** Family issues. */
|
|
11
|
+
export declare const FAMILY_ISSUES: readonly ["parenting", "co_parenting", "family_conflict", "blended_families", "elder_care_stress", "sibling_issues", "adoption"];
|
|
12
|
+
/** Career issues. */
|
|
13
|
+
export declare const CAREER_ISSUES: readonly ["career_change", "job_stress", "burnout", "work_life_balance", "interview_anxiety", "leadership_coaching", "workplace_conflict"];
|
|
14
|
+
/** Child & adolescent issues. */
|
|
15
|
+
export declare const CHILD_ADOLESCENT_ISSUES: readonly ["behavioral_issues", "school_anxiety", "bullying", "teen_depression", "identity_issues", "academic_pressure", "screen_addiction"];
|
|
16
|
+
/** Addiction issues. */
|
|
17
|
+
export declare const ADDICTION_ISSUES: readonly ["substance_abuse", "alcohol", "gambling", "internet_gaming", "smoking", "pornography", "shopping"];
|
|
18
|
+
/** Sexual health issues. */
|
|
19
|
+
export declare const SEXUAL_HEALTH_ISSUES: readonly ["sexual_dysfunction", "gender_identity", "lgbtq_support", "intimacy_issues"];
|
|
20
|
+
/** Trauma issues. */
|
|
21
|
+
export declare const TRAUMA_ISSUES: readonly ["abuse_survivors", "domestic_violence", "childhood_trauma", "accident_recovery", "war_conflict", "natural_disaster"];
|
|
22
|
+
/** Wellness issues. */
|
|
23
|
+
export declare const WELLNESS_ISSUES: readonly ["stress_management", "mindfulness", "sleep_issues", "self_esteem", "life_transitions", "expat_adjustment", "retirement"];
|
|
24
|
+
/** Corporate issues. */
|
|
25
|
+
export declare const CORPORATE_ISSUES: readonly ["eap_counseling", "executive_coaching", "team_dynamics", "harassment", "diversity_inclusion"];
|
|
26
|
+
/** Legal counseling issues. */
|
|
27
|
+
export declare const LEGAL_ISSUES: readonly ["pre_litigation_counseling", "mediation", "custody_counseling", "victim_advocacy"];
|
|
28
|
+
/** Union of all issues across all categories. */
|
|
29
|
+
export declare const ALL_ISSUES: readonly ["anxiety", "depression", "stress", "ocd", "ptsd", "bipolar", "schizophrenia", "grief", "anger_management", "panic_disorder", "phobias", "eating_disorders", "adhd", "autism_asd", "dyslexia", "sensory_processing", "giftedness", "tourettes", "dyscalculia", "learning_disabilities", "marriage_counseling", "couple_therapy", "pre_marital", "divorce_separation", "infidelity", "communication_issues", "long_distance", "parenting", "co_parenting", "family_conflict", "blended_families", "elder_care_stress", "sibling_issues", "adoption", "career_change", "job_stress", "burnout", "work_life_balance", "interview_anxiety", "leadership_coaching", "workplace_conflict", "behavioral_issues", "school_anxiety", "bullying", "teen_depression", "identity_issues", "academic_pressure", "screen_addiction", "substance_abuse", "alcohol", "gambling", "internet_gaming", "smoking", "pornography", "shopping", "sexual_dysfunction", "gender_identity", "lgbtq_support", "intimacy_issues", "abuse_survivors", "domestic_violence", "childhood_trauma", "accident_recovery", "war_conflict", "natural_disaster", "stress_management", "mindfulness", "sleep_issues", "self_esteem", "life_transitions", "expat_adjustment", "retirement", "eap_counseling", "executive_coaching", "team_dynamics", "harassment", "diversity_inclusion", "pre_litigation_counseling", "mediation", "custody_counseling", "victim_advocacy"];
|
|
30
|
+
export type CounselingIssue = (typeof ALL_ISSUES)[number];
|
|
31
|
+
/** Category → issues mapping for dynamic UI filtering. */
|
|
32
|
+
export declare const ISSUE_CATALOG: Record<CounselingCategory, readonly string[]>;
|
|
33
|
+
//# sourceMappingURL=specializations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specializations.d.ts","sourceRoot":"","sources":["../src/specializations.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,gLAatB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,uKAavB,CAAC;AAEX,6BAA6B;AAC7B,eAAO,MAAM,qBAAqB,sIASxB,CAAC;AAEX,2BAA2B;AAC3B,eAAO,MAAM,mBAAmB,gJAQtB,CAAC;AAEX,qBAAqB;AACrB,eAAO,MAAM,aAAa,kIAQhB,CAAC;AAEX,qBAAqB;AACrB,eAAO,MAAM,aAAa,4IAQhB,CAAC;AAEX,iCAAiC;AACjC,eAAO,MAAM,uBAAuB,6IAQ1B,CAAC;AAEX,wBAAwB;AACxB,eAAO,MAAM,gBAAgB,8GAQnB,CAAC;AAEX,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,wFAKvB,CAAC;AAEX,qBAAqB;AACrB,eAAO,MAAM,aAAa,gIAOhB,CAAC;AAEX,uBAAuB;AACvB,eAAO,MAAM,eAAe,oIAQlB,CAAC;AAEX,wBAAwB;AACxB,eAAO,MAAM,gBAAgB,yGAMnB,CAAC;AAEX,+BAA+B;AAC/B,eAAO,MAAM,YAAY,8FAKf,CAAC;AAEX,iDAAiD;AACjD,eAAO,MAAM,UAAU,g3CAab,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,0DAA0D;AAC1D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAavE,CAAC"}
|