udp-schema 0.1.17 → 0.1.18

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/index.d.ts CHANGED
@@ -18,4 +18,6 @@ export { type Step09NeurodiversityInput, step09NeurodiversitySchema, } from './s
18
18
  export { type Step10PsychologicalInput, step10PsychologicalSchema, } from './step-10.schema.js';
19
19
  export { type Step11PoliticalInput, step11PoliticalSchema, } from './step-11.schema.js';
20
20
  export { type Step12ElectoralInput, step12ElectoralSchema, } from './step-12.schema.js';
21
+ export { type Step13HealthInput, step13HealthSchema, } from './step-13.schema.js';
22
+ export { type Step14PrioritiesInput, step14PrioritiesSchema, } from './step-14.schema.js';
21
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,iBAAiB,EACjB,KAAK,yBAAyB,EAC9B,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,YAAY,EACjB,aAAa,EACb,aAAa,EACb,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,mBAAmB,EACxB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,yBAAyB,EAC9B,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,wBAAwB,EAC7B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,iBAAiB,EACjB,KAAK,yBAAyB,EAC9B,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,YAAY,EACjB,aAAa,EACb,aAAa,EACb,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,mBAAmB,EACxB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,yBAAyB,EAC9B,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,wBAAwB,EAC7B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,iBAAiB,EACtB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -31,4 +31,8 @@ export { step10PsychologicalSchema, } from './step-10.schema.js';
31
31
  export { step11PoliticalSchema, } from './step-11.schema.js';
32
32
  // Step 12 — Electoral Details
33
33
  export { step12ElectoralSchema, } from './step-12.schema.js';
34
+ // Step 13 — Health & Lifestyle
35
+ export { step13HealthSchema, } from './step-13.schema.js';
36
+ // Step 14 — Yearly Priorities & Life Goals
37
+ export { step14PrioritiesSchema, } from './step-14.schema.js';
34
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,UAAU;AACV,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,+BAA+B;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAGlB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,4BAA4B;AAC5B,OAAO,EACL,iBAAiB,EAEjB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,gCAAgC;AAChC,OAAO,EAEL,aAAa,EACb,aAAa,EAEb,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,sCAAsC;AACtC,OAAO,EAEL,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,0DAA0D;AAC1D,OAAO,EAEL,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,kDAAkD;AAClD,OAAO,EAEL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,8BAA8B;AAC9B,OAAO,EAEL,sBAAsB,EAEtB,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,oCAAoC;AACpC,OAAO,EAEL,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,8CAA8C;AAC9C,OAAO,EAEL,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,sCAAsC;AACtC,OAAO,EAEL,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,4CAA4C;AAC5C,OAAO,EAEL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,8BAA8B;AAC9B,OAAO,EAEL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC","sourcesContent":["/**\n * udp-schema — Shared Zod schemas for User Detailed Profile\n *\n * Single source of truth consumed by both survey-frontend and survey-backend.\n *\n * @module udp-schema\n */\n\n// Helpers\nexport {\n emptyStringToUndefined,\n optionalPhoneSchema,\n optionalTrimmedString,\n optionalYearSchema,\n} from './helpers.js';\n\n// Step 01 — Profile Onboarding\nexport {\n assistedBySurveyorSchema,\n languageValueSchema,\n profilePhotoSchema,\n type Step01OnboardingFormInput,\n type Step01OnboardingInput,\n secondaryLanguageItemSchema,\n step01OnboardingSchema,\n} from './step-01.schema.js';\n\n// Step 02 — Contact Details\nexport {\n optionalUrlSchema,\n type Step02ContactDetailsInput,\n step02ContactDetailsSchema,\n} from './step-02.schema.js';\n\n// Step 03 — Residence / Address\nexport {\n type AddressInput,\n addressSchema,\n areaRefSchema,\n type Step03ResidenceInput,\n step03ResidenceSchema,\n} from './step-03.schema.js';\n\n// Step 04 — Identity & Social Profile\nexport {\n type Step04IdentityInput,\n step04IdentitySchema,\n} from './step-04.schema.js';\n\n// Step 05 — Leadership, Contribution & Political Ambition\nexport {\n type Step05LeadershipInput,\n step05LeadershipSchema,\n} from './step-05.schema.js';\n\n// Step 06 — Household, Economic & Digital Profile\nexport {\n type Step06HouseholdInput,\n step06HouseholdSchema,\n} from './step-06.schema.js';\n\n// Step 07 — Education History\nexport {\n type CertificateEntryInput,\n certificateEntrySchema,\n type DegreeEntryInput,\n degreeEntrySchema,\n type Step07EducationInput,\n step07EducationSchema,\n} from './step-07.schema.js';\n\n// Step 08 — Employment & Occupation\nexport {\n type Step08EmploymentInput,\n step08EmploymentSchema,\n} from './step-08.schema.js';\n\n// Step 09 — Neurodiversity & Learning Profile\nexport {\n type Step09NeurodiversityInput,\n step09NeurodiversitySchema,\n} from './step-09.schema.js';\n\n// Step 10 — Psychological Assessments\nexport {\n type Step10PsychologicalInput,\n step10PsychologicalSchema,\n} from './step-10.schema.js';\n\n// Step 11 — Political Association & History\nexport {\n type Step11PoliticalInput,\n step11PoliticalSchema,\n} from './step-11.schema.js';\n\n// Step 12 — Electoral Details\nexport {\n type Step12ElectoralInput,\n step12ElectoralSchema,\n} from './step-12.schema.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,UAAU;AACV,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,+BAA+B;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAGlB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,4BAA4B;AAC5B,OAAO,EACL,iBAAiB,EAEjB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,gCAAgC;AAChC,OAAO,EAEL,aAAa,EACb,aAAa,EAEb,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,sCAAsC;AACtC,OAAO,EAEL,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,0DAA0D;AAC1D,OAAO,EAEL,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,kDAAkD;AAClD,OAAO,EAEL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,8BAA8B;AAC9B,OAAO,EAEL,sBAAsB,EAEtB,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,oCAAoC;AACpC,OAAO,EAEL,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,8CAA8C;AAC9C,OAAO,EAEL,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,sCAAsC;AACtC,OAAO,EAEL,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,4CAA4C;AAC5C,OAAO,EAEL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,8BAA8B;AAC9B,OAAO,EAEL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,+BAA+B;AAC/B,OAAO,EAEL,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,2CAA2C;AAC3C,OAAO,EAEL,sBAAsB,GACvB,MAAM,qBAAqB,CAAC","sourcesContent":["/**\n * udp-schema — Shared Zod schemas for User Detailed Profile\n *\n * Single source of truth consumed by both survey-frontend and survey-backend.\n *\n * @module udp-schema\n */\n\n// Helpers\nexport {\n emptyStringToUndefined,\n optionalPhoneSchema,\n optionalTrimmedString,\n optionalYearSchema,\n} from './helpers.js';\n\n// Step 01 — Profile Onboarding\nexport {\n assistedBySurveyorSchema,\n languageValueSchema,\n profilePhotoSchema,\n type Step01OnboardingFormInput,\n type Step01OnboardingInput,\n secondaryLanguageItemSchema,\n step01OnboardingSchema,\n} from './step-01.schema.js';\n\n// Step 02 — Contact Details\nexport {\n optionalUrlSchema,\n type Step02ContactDetailsInput,\n step02ContactDetailsSchema,\n} from './step-02.schema.js';\n\n// Step 03 — Residence / Address\nexport {\n type AddressInput,\n addressSchema,\n areaRefSchema,\n type Step03ResidenceInput,\n step03ResidenceSchema,\n} from './step-03.schema.js';\n\n// Step 04 — Identity & Social Profile\nexport {\n type Step04IdentityInput,\n step04IdentitySchema,\n} from './step-04.schema.js';\n\n// Step 05 — Leadership, Contribution & Political Ambition\nexport {\n type Step05LeadershipInput,\n step05LeadershipSchema,\n} from './step-05.schema.js';\n\n// Step 06 — Household, Economic & Digital Profile\nexport {\n type Step06HouseholdInput,\n step06HouseholdSchema,\n} from './step-06.schema.js';\n\n// Step 07 — Education History\nexport {\n type CertificateEntryInput,\n certificateEntrySchema,\n type DegreeEntryInput,\n degreeEntrySchema,\n type Step07EducationInput,\n step07EducationSchema,\n} from './step-07.schema.js';\n\n// Step 08 — Employment & Occupation\nexport {\n type Step08EmploymentInput,\n step08EmploymentSchema,\n} from './step-08.schema.js';\n\n// Step 09 — Neurodiversity & Learning Profile\nexport {\n type Step09NeurodiversityInput,\n step09NeurodiversitySchema,\n} from './step-09.schema.js';\n\n// Step 10 — Psychological Assessments\nexport {\n type Step10PsychologicalInput,\n step10PsychologicalSchema,\n} from './step-10.schema.js';\n\n// Step 11 — Political Association & History\nexport {\n type Step11PoliticalInput,\n step11PoliticalSchema,\n} from './step-11.schema.js';\n\n// Step 12 — Electoral Details\nexport {\n type Step12ElectoralInput,\n step12ElectoralSchema,\n} from './step-12.schema.js';\n\n// Step 13 — Health & Lifestyle\nexport {\n type Step13HealthInput,\n step13HealthSchema,\n} from './step-13.schema.js';\n\n// Step 14 — Yearly Priorities & Life Goals\nexport {\n type Step14PrioritiesInput,\n step14PrioritiesSchema,\n} from './step-14.schema.js';\n"]}
@@ -0,0 +1,186 @@
1
+ import { z } from 'zod';
2
+ export declare const DISABILITY_STATUS: readonly ["NONE", "PHYSICAL", "VISUAL", "HEARING", "SPEECH", "INTELLECTUAL", "PSYCHOSOCIAL", "MULTIPLE", "OTHER"];
3
+ export declare const OVERALL_HEALTH_STATUS: readonly ["EXCELLENT", "GOOD", "FAIR", "POOR"];
4
+ export declare const KNOWN_HEALTH_CONDITIONS: readonly ["DIABETES", "HYPERTENSION", "HEART_DISEASE", "ASTHMA_COPD", "THYROID_DISORDER", "KIDNEY_DISEASE", "LIVER_DISEASE", "ARTHRITIS", "CHRONIC_PAIN", "EPILEPSY", "CANCER", "MENTAL_HEALTH_CONDITION", "OTHER", "NONE"];
5
+ export declare const BLOOD_GROUP: readonly ["A_POSITIVE", "A_NEGATIVE", "B_POSITIVE", "B_NEGATIVE", "AB_POSITIVE", "AB_NEGATIVE", "O_POSITIVE", "O_NEGATIVE", "DONT_KNOW"];
6
+ /**
7
+ * Dietary preference — captures food identity relevant to cultural,
8
+ * religious, and ethical contexts in India.
9
+ */
10
+ export declare const FOOD_HABIT_TYPE: readonly ["VEGETARIAN", "EGGETARIAN", "NON_VEGETARIAN", "VEGAN", "JAIN", "OTHER"];
11
+ /**
12
+ * Self-reported physical activity level.
13
+ * Single choice — overall lifestyle signal.
14
+ */
15
+ export declare const PHYSICAL_ACTIVITY_LEVEL: readonly ["VERY_ACTIVE", "ACTIVE", "LIGHTLY_ACTIVE", "SEDENTARY"];
16
+ export declare const PHYSICAL_ACTIVITY_TYPES: readonly ["WALKING_RUNNING", "YOGA_MEDITATION", "GYM_WEIGHTLIFTING", "CYCLING", "SWIMMING", "SPORTS_TEAM", "MARTIAL_ARTS", "MANUAL_LABOUR", "DANCE", "OTHER"];
17
+ export declare const SLEEP_HOURS: readonly ["LESS_THAN_5", "FIVE_TO_SIX", "SIX_TO_SEVEN", "SEVEN_TO_EIGHT", "MORE_THAN_EIGHT"];
18
+ export declare const STRESS_LEVEL: readonly ["VERY_LOW", "LOW", "MODERATE", "HIGH", "VERY_HIGH"];
19
+ export declare const TOBACCO_USE: readonly ["NEVER", "TRIED_QUIT", "OCCASIONALLY", "REGULARLY", "DAILY"];
20
+ export declare const TOBACCO_TYPES: readonly ["CIGARETTES", "BIDI", "CHEWING_TOBACCO", "GUTKHA_PAN_MASALA", "HOOKAH", "VAPING_E_CIGARETTE", "OTHER"];
21
+ export declare const ALCOHOL_USE: readonly ["NEVER", "RARELY", "OCCASIONALLY", "FREQUENTLY", "VERY_FREQUENTLY", "QUIT"];
22
+ export declare const HEALTH_PROGRAMS_INTEREST: readonly ["YOGA_MEDITATION", "FITNESS_GYM", "NUTRITION_COUNSELLING", "STRESS_MANAGEMENT", "ADDICTION_RECOVERY", "MENTAL_HEALTH_SUPPORT", "HEALTH_CAMPS_CHECKUPS", "FIRST_AID_TRAINING", "NONE"];
23
+ /**
24
+ * Views on animal welfare — multi-select opinion statements.
25
+ * Included here (from spec "11.x") as it is a lifestyle/values question.
26
+ */
27
+ export declare const ANIMAL_WELFARE_STATEMENTS: readonly ["ANIMAL_NO_CRUELTY", "ANIMAL_BASIC_RIGHTS", "ANIMAL_OK_FOR_FOOD_IF_HUMANE", "ANIMAL_RELIGIOUS_SACRIFICE_OK", "ANIMAL_FACTORY_FARMING_CONCERN", "ANIMAL_NEUTRAL", "ANIMAL_DONT_KNOW", "ANIMAL_PREFER_NOT_SAY"];
28
+ export declare const MOBILITY_LIMITATIONS: readonly ["DIFFICULTY_WALKING", "DIFFICULTY_CLIMBING_STAIRS", "CANT_TRAVEL_FAR", "FAMILY_RESTRICTS_TRAVEL", "NO_LIMITATIONS"];
29
+ export declare const step13HealthSchema: z.ZodObject<{
30
+ disabilityStatus: z.ZodOptional<z.ZodEnum<{
31
+ OTHER: "OTHER";
32
+ NONE: "NONE";
33
+ VISUAL: "VISUAL";
34
+ PHYSICAL: "PHYSICAL";
35
+ HEARING: "HEARING";
36
+ SPEECH: "SPEECH";
37
+ INTELLECTUAL: "INTELLECTUAL";
38
+ PSYCHOSOCIAL: "PSYCHOSOCIAL";
39
+ MULTIPLE: "MULTIPLE";
40
+ }>>;
41
+ disabilityDetails: z.ZodOptional<z.ZodString>;
42
+ overallHealthStatus: z.ZodOptional<z.ZodEnum<{
43
+ EXCELLENT: "EXCELLENT";
44
+ GOOD: "GOOD";
45
+ FAIR: "FAIR";
46
+ POOR: "POOR";
47
+ }>>;
48
+ knownHealthConditions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
49
+ OTHER: "OTHER";
50
+ NONE: "NONE";
51
+ DIABETES: "DIABETES";
52
+ HYPERTENSION: "HYPERTENSION";
53
+ HEART_DISEASE: "HEART_DISEASE";
54
+ ASTHMA_COPD: "ASTHMA_COPD";
55
+ THYROID_DISORDER: "THYROID_DISORDER";
56
+ KIDNEY_DISEASE: "KIDNEY_DISEASE";
57
+ LIVER_DISEASE: "LIVER_DISEASE";
58
+ ARTHRITIS: "ARTHRITIS";
59
+ CHRONIC_PAIN: "CHRONIC_PAIN";
60
+ EPILEPSY: "EPILEPSY";
61
+ CANCER: "CANCER";
62
+ MENTAL_HEALTH_CONDITION: "MENTAL_HEALTH_CONDITION";
63
+ }>>>;
64
+ knownHealthConditionsDetails: z.ZodOptional<z.ZodString>;
65
+ currentMedications: z.ZodOptional<z.ZodString>;
66
+ bloodGroup: z.ZodOptional<z.ZodEnum<{
67
+ DONT_KNOW: "DONT_KNOW";
68
+ A_POSITIVE: "A_POSITIVE";
69
+ A_NEGATIVE: "A_NEGATIVE";
70
+ B_POSITIVE: "B_POSITIVE";
71
+ B_NEGATIVE: "B_NEGATIVE";
72
+ AB_POSITIVE: "AB_POSITIVE";
73
+ AB_NEGATIVE: "AB_NEGATIVE";
74
+ O_POSITIVE: "O_POSITIVE";
75
+ O_NEGATIVE: "O_NEGATIVE";
76
+ }>>;
77
+ lastHealthCheckupYear: z.ZodOptional<z.ZodString>;
78
+ hasHealthInsurance: z.ZodOptional<z.ZodEnum<{
79
+ NO: "NO";
80
+ NOT_SURE: "NOT_SURE";
81
+ YES: "YES";
82
+ }>>;
83
+ healthInsuranceDetails: z.ZodOptional<z.ZodString>;
84
+ hasAyushmanBharatCard: z.ZodOptional<z.ZodEnum<{
85
+ NO: "NO";
86
+ NOT_SURE: "NOT_SURE";
87
+ YES: "YES";
88
+ }>>;
89
+ foodHabitType: z.ZodOptional<z.ZodEnum<{
90
+ JAIN: "JAIN";
91
+ OTHER: "OTHER";
92
+ VEGETARIAN: "VEGETARIAN";
93
+ EGGETARIAN: "EGGETARIAN";
94
+ NON_VEGETARIAN: "NON_VEGETARIAN";
95
+ VEGAN: "VEGAN";
96
+ }>>;
97
+ foodHabitNotes: z.ZodOptional<z.ZodString>;
98
+ physicalActivityLevel: z.ZodOptional<z.ZodEnum<{
99
+ VERY_ACTIVE: "VERY_ACTIVE";
100
+ ACTIVE: "ACTIVE";
101
+ LIGHTLY_ACTIVE: "LIGHTLY_ACTIVE";
102
+ SEDENTARY: "SEDENTARY";
103
+ }>>;
104
+ physicalActivityTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
105
+ OTHER: "OTHER";
106
+ WALKING_RUNNING: "WALKING_RUNNING";
107
+ YOGA_MEDITATION: "YOGA_MEDITATION";
108
+ GYM_WEIGHTLIFTING: "GYM_WEIGHTLIFTING";
109
+ CYCLING: "CYCLING";
110
+ SWIMMING: "SWIMMING";
111
+ SPORTS_TEAM: "SPORTS_TEAM";
112
+ MARTIAL_ARTS: "MARTIAL_ARTS";
113
+ MANUAL_LABOUR: "MANUAL_LABOUR";
114
+ DANCE: "DANCE";
115
+ }>>>;
116
+ sleepHoursPerDay: z.ZodOptional<z.ZodEnum<{
117
+ LESS_THAN_5: "LESS_THAN_5";
118
+ FIVE_TO_SIX: "FIVE_TO_SIX";
119
+ SIX_TO_SEVEN: "SIX_TO_SEVEN";
120
+ SEVEN_TO_EIGHT: "SEVEN_TO_EIGHT";
121
+ MORE_THAN_EIGHT: "MORE_THAN_EIGHT";
122
+ }>>;
123
+ perceivedStressLevel: z.ZodOptional<z.ZodEnum<{
124
+ VERY_HIGH: "VERY_HIGH";
125
+ MODERATE: "MODERATE";
126
+ VERY_LOW: "VERY_LOW";
127
+ LOW: "LOW";
128
+ HIGH: "HIGH";
129
+ }>>;
130
+ stressMainCauses: z.ZodOptional<z.ZodString>;
131
+ tobaccoUse: z.ZodOptional<z.ZodEnum<{
132
+ NEVER: "NEVER";
133
+ TRIED_QUIT: "TRIED_QUIT";
134
+ OCCASIONALLY: "OCCASIONALLY";
135
+ REGULARLY: "REGULARLY";
136
+ DAILY: "DAILY";
137
+ }>>;
138
+ tobaccoTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
139
+ OTHER: "OTHER";
140
+ CIGARETTES: "CIGARETTES";
141
+ BIDI: "BIDI";
142
+ CHEWING_TOBACCO: "CHEWING_TOBACCO";
143
+ GUTKHA_PAN_MASALA: "GUTKHA_PAN_MASALA";
144
+ HOOKAH: "HOOKAH";
145
+ VAPING_E_CIGARETTE: "VAPING_E_CIGARETTE";
146
+ }>>>;
147
+ alcoholUse: z.ZodOptional<z.ZodEnum<{
148
+ NEVER: "NEVER";
149
+ RARELY: "RARELY";
150
+ OCCASIONALLY: "OCCASIONALLY";
151
+ FREQUENTLY: "FREQUENTLY";
152
+ VERY_FREQUENTLY: "VERY_FREQUENTLY";
153
+ QUIT: "QUIT";
154
+ }>>;
155
+ interestedInHealthPrograms: z.ZodOptional<z.ZodArray<z.ZodEnum<{
156
+ NONE: "NONE";
157
+ YOGA_MEDITATION: "YOGA_MEDITATION";
158
+ FITNESS_GYM: "FITNESS_GYM";
159
+ NUTRITION_COUNSELLING: "NUTRITION_COUNSELLING";
160
+ STRESS_MANAGEMENT: "STRESS_MANAGEMENT";
161
+ ADDICTION_RECOVERY: "ADDICTION_RECOVERY";
162
+ MENTAL_HEALTH_SUPPORT: "MENTAL_HEALTH_SUPPORT";
163
+ HEALTH_CAMPS_CHECKUPS: "HEALTH_CAMPS_CHECKUPS";
164
+ FIRST_AID_TRAINING: "FIRST_AID_TRAINING";
165
+ }>>>;
166
+ viewOnAnimalWelfareStatements: z.ZodOptional<z.ZodArray<z.ZodEnum<{
167
+ ANIMAL_NO_CRUELTY: "ANIMAL_NO_CRUELTY";
168
+ ANIMAL_BASIC_RIGHTS: "ANIMAL_BASIC_RIGHTS";
169
+ ANIMAL_OK_FOR_FOOD_IF_HUMANE: "ANIMAL_OK_FOR_FOOD_IF_HUMANE";
170
+ ANIMAL_RELIGIOUS_SACRIFICE_OK: "ANIMAL_RELIGIOUS_SACRIFICE_OK";
171
+ ANIMAL_FACTORY_FARMING_CONCERN: "ANIMAL_FACTORY_FARMING_CONCERN";
172
+ ANIMAL_NEUTRAL: "ANIMAL_NEUTRAL";
173
+ ANIMAL_DONT_KNOW: "ANIMAL_DONT_KNOW";
174
+ ANIMAL_PREFER_NOT_SAY: "ANIMAL_PREFER_NOT_SAY";
175
+ }>>>;
176
+ viewOnAnimalCrueltyOpinion: z.ZodOptional<z.ZodString>;
177
+ mobilityOrTravelLimitations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
178
+ DIFFICULTY_WALKING: "DIFFICULTY_WALKING";
179
+ DIFFICULTY_CLIMBING_STAIRS: "DIFFICULTY_CLIMBING_STAIRS";
180
+ CANT_TRAVEL_FAR: "CANT_TRAVEL_FAR";
181
+ FAMILY_RESTRICTS_TRAVEL: "FAMILY_RESTRICTS_TRAVEL";
182
+ NO_LIMITATIONS: "NO_LIMITATIONS";
183
+ }>>>;
184
+ }, z.core.$strip>;
185
+ export type Step13HealthInput = z.infer<typeof step13HealthSchema>;
186
+ //# sourceMappingURL=step-13.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-13.schema.d.ts","sourceRoot":"","sources":["../src/step-13.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB,mHAUpB,CAAC;AAEX,eAAO,MAAM,qBAAqB,gDAKxB,CAAC;AAEX,eAAO,MAAM,uBAAuB,6NAe1B,CAAC;AAEX,eAAO,MAAM,WAAW,0IAUd,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe,mFAOlB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mEAK1B,CAAC;AAEX,eAAO,MAAM,uBAAuB,+JAW1B,CAAC;AAEX,eAAO,MAAM,WAAW,8FAMd,CAAC;AAEX,eAAO,MAAM,YAAY,+DAAgE,CAAC;AAE1F,eAAO,MAAM,WAAW,wEAMd,CAAC;AAEX,eAAO,MAAM,aAAa,kHAQhB,CAAC;AAEX,eAAO,MAAM,WAAW,uFAOd,CAAC;AAEX,eAAO,MAAM,wBAAwB,iMAU3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,yBAAyB,yNAS5B,CAAC;AAEX,eAAO,MAAM,oBAAoB,+HAMvB,CAAC;AAIX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsG7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,215 @@
1
+ import { z } from 'zod';
2
+ // ─── Enums ────────────────────────────────────────────────────────────────────
3
+ export const DISABILITY_STATUS = [
4
+ 'NONE',
5
+ 'PHYSICAL', // Mobility, limb, paralysis
6
+ 'VISUAL', // Blindness, low vision
7
+ 'HEARING', // Deafness, hard of hearing
8
+ 'SPEECH', // Speech / communication impairment
9
+ 'INTELLECTUAL', // Cognitive / developmental
10
+ 'PSYCHOSOCIAL', // Mental health condition recognised as disability
11
+ 'MULTIPLE', // More than one type
12
+ 'OTHER',
13
+ ];
14
+ export const OVERALL_HEALTH_STATUS = [
15
+ 'EXCELLENT', // No health issues; very fit
16
+ 'GOOD', // Generally healthy with minor issues
17
+ 'FAIR', // Some chronic conditions, managed
18
+ 'POOR', // Serious ongoing health problems
19
+ ];
20
+ export const KNOWN_HEALTH_CONDITIONS = [
21
+ 'DIABETES',
22
+ 'HYPERTENSION',
23
+ 'HEART_DISEASE',
24
+ 'ASTHMA_COPD',
25
+ 'THYROID_DISORDER',
26
+ 'KIDNEY_DISEASE',
27
+ 'LIVER_DISEASE',
28
+ 'ARTHRITIS',
29
+ 'CHRONIC_PAIN',
30
+ 'EPILEPSY',
31
+ 'CANCER',
32
+ 'MENTAL_HEALTH_CONDITION',
33
+ 'OTHER',
34
+ 'NONE',
35
+ ];
36
+ export const BLOOD_GROUP = [
37
+ 'A_POSITIVE',
38
+ 'A_NEGATIVE',
39
+ 'B_POSITIVE',
40
+ 'B_NEGATIVE',
41
+ 'AB_POSITIVE',
42
+ 'AB_NEGATIVE',
43
+ 'O_POSITIVE',
44
+ 'O_NEGATIVE',
45
+ 'DONT_KNOW',
46
+ ];
47
+ /**
48
+ * Dietary preference — captures food identity relevant to cultural,
49
+ * religious, and ethical contexts in India.
50
+ */
51
+ export const FOOD_HABIT_TYPE = [
52
+ 'VEGETARIAN', // No egg, no meat, no fish
53
+ 'EGGETARIAN', // Egg but no meat or fish
54
+ 'NON_VEGETARIAN', // Includes meat, fish, or egg
55
+ 'VEGAN', // No animal products including dairy
56
+ 'JAIN', // Jain dietary restrictions (no root vegetables)
57
+ 'OTHER',
58
+ ];
59
+ /**
60
+ * Self-reported physical activity level.
61
+ * Single choice — overall lifestyle signal.
62
+ */
63
+ export const PHYSICAL_ACTIVITY_LEVEL = [
64
+ 'VERY_ACTIVE', // Daily intense exercise
65
+ 'ACTIVE', // Regular moderate exercise (3–4 days/week)
66
+ 'LIGHTLY_ACTIVE', // Occasional walks or light activity
67
+ 'SEDENTARY', // Mostly desk/sitting; very little movement
68
+ ];
69
+ export const PHYSICAL_ACTIVITY_TYPES = [
70
+ 'WALKING_RUNNING',
71
+ 'YOGA_MEDITATION',
72
+ 'GYM_WEIGHTLIFTING',
73
+ 'CYCLING',
74
+ 'SWIMMING',
75
+ 'SPORTS_TEAM', // Cricket, football, kabaddi, etc.
76
+ 'MARTIAL_ARTS', // MMA, wrestling, boxing
77
+ 'MANUAL_LABOUR', // Farming, construction (counts as activity)
78
+ 'DANCE',
79
+ 'OTHER',
80
+ ];
81
+ export const SLEEP_HOURS = [
82
+ 'LESS_THAN_5', // Chronically sleep-deprived
83
+ 'FIVE_TO_SIX',
84
+ 'SIX_TO_SEVEN',
85
+ 'SEVEN_TO_EIGHT', // Ideal range
86
+ 'MORE_THAN_EIGHT',
87
+ ];
88
+ export const STRESS_LEVEL = ['VERY_LOW', 'LOW', 'MODERATE', 'HIGH', 'VERY_HIGH'];
89
+ export const TOBACCO_USE = [
90
+ 'NEVER',
91
+ 'TRIED_QUIT', // Tried in past, has now quit
92
+ 'OCCASIONALLY', // A few times per month
93
+ 'REGULARLY', // Multiple times per week
94
+ 'DAILY',
95
+ ];
96
+ export const TOBACCO_TYPES = [
97
+ 'CIGARETTES',
98
+ 'BIDI',
99
+ 'CHEWING_TOBACCO',
100
+ 'GUTKHA_PAN_MASALA',
101
+ 'HOOKAH',
102
+ 'VAPING_E_CIGARETTE',
103
+ 'OTHER',
104
+ ];
105
+ export const ALCOHOL_USE = [
106
+ 'NEVER',
107
+ 'RARELY', // A few times a year
108
+ 'OCCASIONALLY', // A few times a month
109
+ 'FREQUENTLY', // Weekly
110
+ 'VERY_FREQUENTLY', // Daily or near-daily
111
+ 'QUIT',
112
+ ];
113
+ export const HEALTH_PROGRAMS_INTEREST = [
114
+ 'YOGA_MEDITATION',
115
+ 'FITNESS_GYM',
116
+ 'NUTRITION_COUNSELLING',
117
+ 'STRESS_MANAGEMENT',
118
+ 'ADDICTION_RECOVERY',
119
+ 'MENTAL_HEALTH_SUPPORT',
120
+ 'HEALTH_CAMPS_CHECKUPS',
121
+ 'FIRST_AID_TRAINING',
122
+ 'NONE',
123
+ ];
124
+ /**
125
+ * Views on animal welfare — multi-select opinion statements.
126
+ * Included here (from spec "11.x") as it is a lifestyle/values question.
127
+ */
128
+ export const ANIMAL_WELFARE_STATEMENTS = [
129
+ 'ANIMAL_NO_CRUELTY', // Animals should not be tortured or killed for fun
130
+ 'ANIMAL_BASIC_RIGHTS', // Animals should have basic legal protection
131
+ 'ANIMAL_OK_FOR_FOOD_IF_HUMANE', // Using animals for food is OK if done humanely
132
+ 'ANIMAL_RELIGIOUS_SACRIFICE_OK', // Religious animal sacrifice is acceptable
133
+ 'ANIMAL_FACTORY_FARMING_CONCERN', // Concerned about factory farming cruelty
134
+ 'ANIMAL_NEUTRAL', // Do not feel strongly about animal cruelty
135
+ 'ANIMAL_DONT_KNOW', // Do not know enough
136
+ 'ANIMAL_PREFER_NOT_SAY',
137
+ ];
138
+ export const MOBILITY_LIMITATIONS = [
139
+ 'DIFFICULTY_WALKING',
140
+ 'DIFFICULTY_CLIMBING_STAIRS',
141
+ 'CANT_TRAVEL_FAR', // Cannot travel more than a short distance
142
+ 'FAMILY_RESTRICTS_TRAVEL', // Family/cultural restrictions on going out
143
+ 'NO_LIMITATIONS',
144
+ ];
145
+ // ─── Schema ───────────────────────────────────────────────────────────────────
146
+ export const step13HealthSchema = z.object({
147
+ // ── 13.1 Disability ───────────────────────────────────────────────────────
148
+ disabilityStatus: z.enum(DISABILITY_STATUS).optional(),
149
+ /** Describe disability type, severity, or support needs — shown if not NONE. */
150
+ disabilityDetails: z.string().trim().optional(),
151
+ // ── 13.2 General Health ───────────────────────────────────────────────────
152
+ overallHealthStatus: z.enum(OVERALL_HEALTH_STATUS).optional(),
153
+ knownHealthConditions: z.array(z.enum(KNOWN_HEALTH_CONDITIONS)).optional(),
154
+ /** Describe conditions in more detail — shown when conditions are selected. */
155
+ knownHealthConditionsDetails: z.string().trim().optional(),
156
+ /** Regular medications taken — optional, for medical coordination. */
157
+ currentMedications: z.string().trim().optional(),
158
+ /**
159
+ * Blood group — useful for emergency response at rallies / community events.
160
+ * Added beyond spec.
161
+ */
162
+ bloodGroup: z.enum(BLOOD_GROUP).optional(),
163
+ /**
164
+ * Year of last health checkup — proxy for health-consciousness.
165
+ * Added beyond spec.
166
+ */
167
+ lastHealthCheckupYear: z.string().trim().optional(),
168
+ // ── 13.3 Health Insurance ─────────────────────────────────────────────────
169
+ hasHealthInsurance: z.enum(['YES', 'NO', 'NOT_SURE']).optional(),
170
+ /** Insurance company and approximate cover amount. */
171
+ healthInsuranceDetails: z.string().trim().optional(),
172
+ /**
173
+ * Ayushman Bharat Pradhan Mantri Jan Arogya Yojana (PM-JAY) card holder.
174
+ * India-specific government health scheme — added beyond spec.
175
+ * Key socio-economic indicator and policy awareness signal.
176
+ */
177
+ hasAyushmanBharatCard: z.enum(['YES', 'NO', 'NOT_SURE']).optional(),
178
+ // ── 13.4 Food Habits ──────────────────────────────────────────────────────
179
+ /**
180
+ * Dietary identity — culturally and religiously significant in India.
181
+ * Moved here from spec "11.x" where it lacked a section.
182
+ */
183
+ foodHabitType: z.enum(FOOD_HABIT_TYPE).optional(),
184
+ /** Additional food preferences, allergies, or religious restrictions. */
185
+ foodHabitNotes: z.string().trim().optional(),
186
+ // ── 13.5 Physical Activity ────────────────────────────────────────────────
187
+ physicalActivityLevel: z.enum(PHYSICAL_ACTIVITY_LEVEL).optional(),
188
+ physicalActivityTypes: z.array(z.enum(PHYSICAL_ACTIVITY_TYPES)).optional(),
189
+ // ── 13.6 Sleep & Stress ───────────────────────────────────────────────────
190
+ sleepHoursPerDay: z.enum(SLEEP_HOURS).optional(),
191
+ perceivedStressLevel: z.enum(STRESS_LEVEL).optional(),
192
+ /**
193
+ * Main causes of current stress — open text.
194
+ * Added beyond spec; helps org identify common member burdens.
195
+ */
196
+ stressMainCauses: z.string().trim().optional(),
197
+ // ── 13.7 Substance Use ────────────────────────────────────────────────────
198
+ tobaccoUse: z.enum(TOBACCO_USE).optional(),
199
+ /** Types used — shown only when tobacco use is not NEVER. */
200
+ tobaccoTypes: z.array(z.enum(TOBACCO_TYPES)).optional(),
201
+ alcoholUse: z.enum(ALCOHOL_USE).optional(),
202
+ // ── 13.8 Health Program Interest ─────────────────────────────────────────
203
+ interestedInHealthPrograms: z.array(z.enum(HEALTH_PROGRAMS_INTEREST)).optional(),
204
+ // ── 13.9 Animal Welfare Views ────────────────────────────────────────────
205
+ /**
206
+ * Multi-select opinion statements on animal welfare.
207
+ * From spec "11.x" — captures lifestyle values and ethical outlook.
208
+ */
209
+ viewOnAnimalWelfareStatements: z.array(z.enum(ANIMAL_WELFARE_STATEMENTS)).optional(),
210
+ /** Free-text opinion on animal welfare — shown alongside multi-select. */
211
+ viewOnAnimalCrueltyOpinion: z.string().trim().optional(),
212
+ // ── 13.10 Mobility ────────────────────────────────────────────────────────
213
+ mobilityOrTravelLimitations: z.array(z.enum(MOBILITY_LIMITATIONS)).optional(),
214
+ });
215
+ //# sourceMappingURL=step-13.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-13.schema.js","sourceRoot":"","sources":["../src/step-13.schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\n// ─── Enums ────────────────────────────────────────────────────────────────────\n\nexport const DISABILITY_STATUS = [\n 'NONE',\n 'PHYSICAL', // Mobility, limb, paralysis\n 'VISUAL', // Blindness, low vision\n 'HEARING', // Deafness, hard of hearing\n 'SPEECH', // Speech / communication impairment\n 'INTELLECTUAL', // Cognitive / developmental\n 'PSYCHOSOCIAL', // Mental health condition recognised as disability\n 'MULTIPLE', // More than one type\n 'OTHER',\n] as const;\n\nexport const OVERALL_HEALTH_STATUS = [\n 'EXCELLENT', // No health issues; very fit\n 'GOOD', // Generally healthy with minor issues\n 'FAIR', // Some chronic conditions, managed\n 'POOR', // Serious ongoing health problems\n] as const;\n\nexport const KNOWN_HEALTH_CONDITIONS = [\n 'DIABETES',\n 'HYPERTENSION',\n 'HEART_DISEASE',\n 'ASTHMA_COPD',\n 'THYROID_DISORDER',\n 'KIDNEY_DISEASE',\n 'LIVER_DISEASE',\n 'ARTHRITIS',\n 'CHRONIC_PAIN',\n 'EPILEPSY',\n 'CANCER',\n 'MENTAL_HEALTH_CONDITION',\n 'OTHER',\n 'NONE',\n] as const;\n\nexport const BLOOD_GROUP = [\n 'A_POSITIVE',\n 'A_NEGATIVE',\n 'B_POSITIVE',\n 'B_NEGATIVE',\n 'AB_POSITIVE',\n 'AB_NEGATIVE',\n 'O_POSITIVE',\n 'O_NEGATIVE',\n 'DONT_KNOW',\n] as const;\n\n/**\n * Dietary preference — captures food identity relevant to cultural,\n * religious, and ethical contexts in India.\n */\nexport const FOOD_HABIT_TYPE = [\n 'VEGETARIAN', // No egg, no meat, no fish\n 'EGGETARIAN', // Egg but no meat or fish\n 'NON_VEGETARIAN', // Includes meat, fish, or egg\n 'VEGAN', // No animal products including dairy\n 'JAIN', // Jain dietary restrictions (no root vegetables)\n 'OTHER',\n] as const;\n\n/**\n * Self-reported physical activity level.\n * Single choice — overall lifestyle signal.\n */\nexport const PHYSICAL_ACTIVITY_LEVEL = [\n 'VERY_ACTIVE', // Daily intense exercise\n 'ACTIVE', // Regular moderate exercise (3–4 days/week)\n 'LIGHTLY_ACTIVE', // Occasional walks or light activity\n 'SEDENTARY', // Mostly desk/sitting; very little movement\n] as const;\n\nexport const PHYSICAL_ACTIVITY_TYPES = [\n 'WALKING_RUNNING',\n 'YOGA_MEDITATION',\n 'GYM_WEIGHTLIFTING',\n 'CYCLING',\n 'SWIMMING',\n 'SPORTS_TEAM', // Cricket, football, kabaddi, etc.\n 'MARTIAL_ARTS', // MMA, wrestling, boxing\n 'MANUAL_LABOUR', // Farming, construction (counts as activity)\n 'DANCE',\n 'OTHER',\n] as const;\n\nexport const SLEEP_HOURS = [\n 'LESS_THAN_5', // Chronically sleep-deprived\n 'FIVE_TO_SIX',\n 'SIX_TO_SEVEN',\n 'SEVEN_TO_EIGHT', // Ideal range\n 'MORE_THAN_EIGHT',\n] as const;\n\nexport const STRESS_LEVEL = ['VERY_LOW', 'LOW', 'MODERATE', 'HIGH', 'VERY_HIGH'] as const;\n\nexport const TOBACCO_USE = [\n 'NEVER',\n 'TRIED_QUIT', // Tried in past, has now quit\n 'OCCASIONALLY', // A few times per month\n 'REGULARLY', // Multiple times per week\n 'DAILY',\n] as const;\n\nexport const TOBACCO_TYPES = [\n 'CIGARETTES',\n 'BIDI',\n 'CHEWING_TOBACCO',\n 'GUTKHA_PAN_MASALA',\n 'HOOKAH',\n 'VAPING_E_CIGARETTE',\n 'OTHER',\n] as const;\n\nexport const ALCOHOL_USE = [\n 'NEVER',\n 'RARELY', // A few times a year\n 'OCCASIONALLY', // A few times a month\n 'FREQUENTLY', // Weekly\n 'VERY_FREQUENTLY', // Daily or near-daily\n 'QUIT',\n] as const;\n\nexport const HEALTH_PROGRAMS_INTEREST = [\n 'YOGA_MEDITATION',\n 'FITNESS_GYM',\n 'NUTRITION_COUNSELLING',\n 'STRESS_MANAGEMENT',\n 'ADDICTION_RECOVERY',\n 'MENTAL_HEALTH_SUPPORT',\n 'HEALTH_CAMPS_CHECKUPS',\n 'FIRST_AID_TRAINING',\n 'NONE',\n] as const;\n\n/**\n * Views on animal welfare — multi-select opinion statements.\n * Included here (from spec \"11.x\") as it is a lifestyle/values question.\n */\nexport const ANIMAL_WELFARE_STATEMENTS = [\n 'ANIMAL_NO_CRUELTY', // Animals should not be tortured or killed for fun\n 'ANIMAL_BASIC_RIGHTS', // Animals should have basic legal protection\n 'ANIMAL_OK_FOR_FOOD_IF_HUMANE', // Using animals for food is OK if done humanely\n 'ANIMAL_RELIGIOUS_SACRIFICE_OK', // Religious animal sacrifice is acceptable\n 'ANIMAL_FACTORY_FARMING_CONCERN', // Concerned about factory farming cruelty\n 'ANIMAL_NEUTRAL', // Do not feel strongly about animal cruelty\n 'ANIMAL_DONT_KNOW', // Do not know enough\n 'ANIMAL_PREFER_NOT_SAY',\n] as const;\n\nexport const MOBILITY_LIMITATIONS = [\n 'DIFFICULTY_WALKING',\n 'DIFFICULTY_CLIMBING_STAIRS',\n 'CANT_TRAVEL_FAR', // Cannot travel more than a short distance\n 'FAMILY_RESTRICTS_TRAVEL', // Family/cultural restrictions on going out\n 'NO_LIMITATIONS',\n] as const;\n\n// ─── Schema ───────────────────────────────────────────────────────────────────\n\nexport const step13HealthSchema = z.object({\n // ── 13.1 Disability ───────────────────────────────────────────────────────\n\n disabilityStatus: z.enum(DISABILITY_STATUS).optional(),\n\n /** Describe disability type, severity, or support needs — shown if not NONE. */\n disabilityDetails: z.string().trim().optional(),\n\n // ── 13.2 General Health ───────────────────────────────────────────────────\n\n overallHealthStatus: z.enum(OVERALL_HEALTH_STATUS).optional(),\n\n knownHealthConditions: z.array(z.enum(KNOWN_HEALTH_CONDITIONS)).optional(),\n\n /** Describe conditions in more detail — shown when conditions are selected. */\n knownHealthConditionsDetails: z.string().trim().optional(),\n\n /** Regular medications taken — optional, for medical coordination. */\n currentMedications: z.string().trim().optional(),\n\n /**\n * Blood group — useful for emergency response at rallies / community events.\n * Added beyond spec.\n */\n bloodGroup: z.enum(BLOOD_GROUP).optional(),\n\n /**\n * Year of last health checkup — proxy for health-consciousness.\n * Added beyond spec.\n */\n lastHealthCheckupYear: z.string().trim().optional(),\n\n // ── 13.3 Health Insurance ─────────────────────────────────────────────────\n\n hasHealthInsurance: z.enum(['YES', 'NO', 'NOT_SURE']).optional(),\n\n /** Insurance company and approximate cover amount. */\n healthInsuranceDetails: z.string().trim().optional(),\n\n /**\n * Ayushman Bharat Pradhan Mantri Jan Arogya Yojana (PM-JAY) card holder.\n * India-specific government health scheme — added beyond spec.\n * Key socio-economic indicator and policy awareness signal.\n */\n hasAyushmanBharatCard: z.enum(['YES', 'NO', 'NOT_SURE']).optional(),\n\n // ── 13.4 Food Habits ──────────────────────────────────────────────────────\n\n /**\n * Dietary identity — culturally and religiously significant in India.\n * Moved here from spec \"11.x\" where it lacked a section.\n */\n foodHabitType: z.enum(FOOD_HABIT_TYPE).optional(),\n\n /** Additional food preferences, allergies, or religious restrictions. */\n foodHabitNotes: z.string().trim().optional(),\n\n // ── 13.5 Physical Activity ────────────────────────────────────────────────\n\n physicalActivityLevel: z.enum(PHYSICAL_ACTIVITY_LEVEL).optional(),\n\n physicalActivityTypes: z.array(z.enum(PHYSICAL_ACTIVITY_TYPES)).optional(),\n\n // ── 13.6 Sleep & Stress ───────────────────────────────────────────────────\n\n sleepHoursPerDay: z.enum(SLEEP_HOURS).optional(),\n\n perceivedStressLevel: z.enum(STRESS_LEVEL).optional(),\n\n /**\n * Main causes of current stress — open text.\n * Added beyond spec; helps org identify common member burdens.\n */\n stressMainCauses: z.string().trim().optional(),\n\n // ── 13.7 Substance Use ────────────────────────────────────────────────────\n\n tobaccoUse: z.enum(TOBACCO_USE).optional(),\n\n /** Types used — shown only when tobacco use is not NEVER. */\n tobaccoTypes: z.array(z.enum(TOBACCO_TYPES)).optional(),\n\n alcoholUse: z.enum(ALCOHOL_USE).optional(),\n\n // ── 13.8 Health Program Interest ─────────────────────────────────────────\n\n interestedInHealthPrograms: z.array(z.enum(HEALTH_PROGRAMS_INTEREST)).optional(),\n\n // ── 13.9 Animal Welfare Views ────────────────────────────────────────────\n\n /**\n * Multi-select opinion statements on animal welfare.\n * From spec \"11.x\" — captures lifestyle values and ethical outlook.\n */\n viewOnAnimalWelfareStatements: z.array(z.enum(ANIMAL_WELFARE_STATEMENTS)).optional(),\n\n /** Free-text opinion on animal welfare — shown alongside multi-select. */\n viewOnAnimalCrueltyOpinion: z.string().trim().optional(),\n\n // ── 13.10 Mobility ────────────────────────────────────────────────────────\n\n mobilityOrTravelLimitations: z.array(z.enum(MOBILITY_LIMITATIONS)).optional(),\n});\n\nexport type Step13HealthInput = z.infer<typeof step13HealthSchema>;\n"]}
@@ -0,0 +1,88 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Life areas the member wants to prioritise in the coming year.
4
+ * Expanded beyond spec: added POLITICAL_ACTIVISM, PERSONAL_GROWTH,
5
+ * CREATIVE_ARTS to capture the full range of meaningful life goals.
6
+ */
7
+ export declare const PRIORITY_CATEGORY_TAGS: readonly ["CAREER", "BUSINESS", "EDUCATION", "HEALTH", "FAMILY", "MARRIAGE", "FINANCE", "SPIRITUAL", "SOCIAL_SERVICE", "POLITICAL_ACTIVISM", "PERSONAL_GROWTH", "CREATIVE_ARTS", "OTHER"];
8
+ /**
9
+ * Skills the member wants to develop.
10
+ * Added beyond spec; enables the org to match training and mentoring programs.
11
+ */
12
+ export declare const SKILLS_TO_LEARN: readonly ["PUBLIC_SPEAKING", "LEADERSHIP", "DIGITAL_MARKETING", "DATA_ANALYSIS", "FOREIGN_LANGUAGE", "FINANCIAL_LITERACY", "LEGAL_AWARENESS", "FARMING_AGRICULTURE", "TECHNICAL_IT", "TEACHING_TRAINING", "SOCIAL_MEDIA_CONTENT", "NEGOTIATION", "FIRST_AID_HEALTH", "CONFLICT_RESOLUTION", "OTHER"];
13
+ /**
14
+ * Hours per week the member can offer as a volunteer.
15
+ * Added beyond spec; essential for capacity planning.
16
+ */
17
+ export declare const VOLUNTEERING_CAPACITY: readonly ["LESS_THAN_2_HRS", "TWO_TO_5_HRS", "FIVE_TO_10_HRS", "MORE_THAN_10_HRS", "FULL_TIME"];
18
+ /**
19
+ * What kind of support the member needs from the organisation.
20
+ * Added beyond spec — turns this step into a two-way conversation.
21
+ */
22
+ export declare const HELP_NEEDED_FROM_ORG: readonly ["CAREER_GUIDANCE", "LEGAL_SUPPORT", "FINANCIAL_AID", "HEALTH_SUPPORT", "EDUCATION_SCHOLARSHIP", "LEADERSHIP_TRAINING", "NETWORK_CONNECTIONS", "EMOTIONAL_SUPPORT", "DIGITAL_TRAINING", "BUSINESS_MENTORING", "NONE"];
23
+ export declare const step14PrioritiesSchema: z.ZodObject<{
24
+ topPrioritiesThisYear: z.ZodOptional<z.ZodString>;
25
+ priorityCategoryTags: z.ZodOptional<z.ZodArray<z.ZodEnum<{
26
+ OTHER: "OTHER";
27
+ EDUCATION: "EDUCATION";
28
+ CAREER: "CAREER";
29
+ BUSINESS: "BUSINESS";
30
+ HEALTH: "HEALTH";
31
+ FAMILY: "FAMILY";
32
+ MARRIAGE: "MARRIAGE";
33
+ FINANCE: "FINANCE";
34
+ SPIRITUAL: "SPIRITUAL";
35
+ SOCIAL_SERVICE: "SOCIAL_SERVICE";
36
+ POLITICAL_ACTIVISM: "POLITICAL_ACTIVISM";
37
+ PERSONAL_GROWTH: "PERSONAL_GROWTH";
38
+ CREATIVE_ARTS: "CREATIVE_ARTS";
39
+ }>>>;
40
+ fiveYearVision: z.ZodOptional<z.ZodString>;
41
+ biggestPersonalChallenge: z.ZodOptional<z.ZodString>;
42
+ skillsWantToLearn: z.ZodOptional<z.ZodArray<z.ZodEnum<{
43
+ OTHER: "OTHER";
44
+ PUBLIC_SPEAKING: "PUBLIC_SPEAKING";
45
+ LEADERSHIP: "LEADERSHIP";
46
+ DIGITAL_MARKETING: "DIGITAL_MARKETING";
47
+ DATA_ANALYSIS: "DATA_ANALYSIS";
48
+ FOREIGN_LANGUAGE: "FOREIGN_LANGUAGE";
49
+ FINANCIAL_LITERACY: "FINANCIAL_LITERACY";
50
+ LEGAL_AWARENESS: "LEGAL_AWARENESS";
51
+ FARMING_AGRICULTURE: "FARMING_AGRICULTURE";
52
+ TECHNICAL_IT: "TECHNICAL_IT";
53
+ TEACHING_TRAINING: "TEACHING_TRAINING";
54
+ SOCIAL_MEDIA_CONTENT: "SOCIAL_MEDIA_CONTENT";
55
+ NEGOTIATION: "NEGOTIATION";
56
+ FIRST_AID_HEALTH: "FIRST_AID_HEALTH";
57
+ CONFLICT_RESOLUTION: "CONFLICT_RESOLUTION";
58
+ }>>>;
59
+ alignmentWithMovement: z.ZodOptional<z.ZodString>;
60
+ openToVolunteering: z.ZodOptional<z.ZodEnum<{
61
+ NO: "NO";
62
+ YES: "YES";
63
+ MAYBE: "MAYBE";
64
+ }>>;
65
+ volunteeringCapacityPerWeek: z.ZodOptional<z.ZodEnum<{
66
+ LESS_THAN_2_HRS: "LESS_THAN_2_HRS";
67
+ TWO_TO_5_HRS: "TWO_TO_5_HRS";
68
+ FIVE_TO_10_HRS: "FIVE_TO_10_HRS";
69
+ MORE_THAN_10_HRS: "MORE_THAN_10_HRS";
70
+ FULL_TIME: "FULL_TIME";
71
+ }>>;
72
+ helpNeededFromOrg: z.ZodOptional<z.ZodArray<z.ZodEnum<{
73
+ NONE: "NONE";
74
+ CAREER_GUIDANCE: "CAREER_GUIDANCE";
75
+ LEGAL_SUPPORT: "LEGAL_SUPPORT";
76
+ FINANCIAL_AID: "FINANCIAL_AID";
77
+ HEALTH_SUPPORT: "HEALTH_SUPPORT";
78
+ EDUCATION_SCHOLARSHIP: "EDUCATION_SCHOLARSHIP";
79
+ LEADERSHIP_TRAINING: "LEADERSHIP_TRAINING";
80
+ NETWORK_CONNECTIONS: "NETWORK_CONNECTIONS";
81
+ EMOTIONAL_SUPPORT: "EMOTIONAL_SUPPORT";
82
+ DIGITAL_TRAINING: "DIGITAL_TRAINING";
83
+ BUSINESS_MENTORING: "BUSINESS_MENTORING";
84
+ }>>>;
85
+ personalMessage: z.ZodOptional<z.ZodString>;
86
+ }, z.core.$strip>;
87
+ export type Step14PrioritiesInput = z.infer<typeof step14PrioritiesSchema>;
88
+ //# sourceMappingURL=step-14.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-14.schema.d.ts","sourceRoot":"","sources":["../src/step-14.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2LAczB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe,sSAgBlB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB,iGAMxB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gOAYvB,CAAC;AAIX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8EjC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,135 @@
1
+ import { z } from 'zod';
2
+ // ─── Enums ────────────────────────────────────────────────────────────────────
3
+ /**
4
+ * Life areas the member wants to prioritise in the coming year.
5
+ * Expanded beyond spec: added POLITICAL_ACTIVISM, PERSONAL_GROWTH,
6
+ * CREATIVE_ARTS to capture the full range of meaningful life goals.
7
+ */
8
+ export const PRIORITY_CATEGORY_TAGS = [
9
+ 'CAREER', // Job growth, promotion, job change
10
+ 'BUSINESS', // Starting or growing a business
11
+ 'EDUCATION', // Degrees, certifications, self-study
12
+ 'HEALTH', // Fitness, mental health, medical
13
+ 'FAMILY', // Family duties, parenting, elder care
14
+ 'MARRIAGE', // Marriage planning or relationship
15
+ 'FINANCE', // Savings, investments, debt repayment
16
+ 'SPIRITUAL', // Religion, meditation, personal faith
17
+ 'SOCIAL_SERVICE', // Community work, volunteering
18
+ 'POLITICAL_ACTIVISM', // Active participation in politics/movement — added beyond spec
19
+ 'PERSONAL_GROWTH', // Self-improvement, habits, mindset — added beyond spec
20
+ 'CREATIVE_ARTS', // Music, writing, art, craft — added beyond spec
21
+ 'OTHER',
22
+ ];
23
+ /**
24
+ * Skills the member wants to develop.
25
+ * Added beyond spec; enables the org to match training and mentoring programs.
26
+ */
27
+ export const SKILLS_TO_LEARN = [
28
+ 'PUBLIC_SPEAKING',
29
+ 'LEADERSHIP',
30
+ 'DIGITAL_MARKETING',
31
+ 'DATA_ANALYSIS',
32
+ 'FOREIGN_LANGUAGE',
33
+ 'FINANCIAL_LITERACY',
34
+ 'LEGAL_AWARENESS', // RTI, consumer rights, constitutional rights
35
+ 'FARMING_AGRICULTURE',
36
+ 'TECHNICAL_IT',
37
+ 'TEACHING_TRAINING',
38
+ 'SOCIAL_MEDIA_CONTENT',
39
+ 'NEGOTIATION',
40
+ 'FIRST_AID_HEALTH',
41
+ 'CONFLICT_RESOLUTION',
42
+ 'OTHER',
43
+ ];
44
+ /**
45
+ * Hours per week the member can offer as a volunteer.
46
+ * Added beyond spec; essential for capacity planning.
47
+ */
48
+ export const VOLUNTEERING_CAPACITY = [
49
+ 'LESS_THAN_2_HRS', // < 2 hours per week
50
+ 'TWO_TO_5_HRS', // 2–5 hours per week
51
+ 'FIVE_TO_10_HRS', // 5–10 hours per week
52
+ 'MORE_THAN_10_HRS', // 10+ hours per week
53
+ 'FULL_TIME', // Available full-time for org work
54
+ ];
55
+ /**
56
+ * What kind of support the member needs from the organisation.
57
+ * Added beyond spec — turns this step into a two-way conversation.
58
+ */
59
+ export const HELP_NEEDED_FROM_ORG = [
60
+ 'CAREER_GUIDANCE',
61
+ 'LEGAL_SUPPORT',
62
+ 'FINANCIAL_AID',
63
+ 'HEALTH_SUPPORT',
64
+ 'EDUCATION_SCHOLARSHIP',
65
+ 'LEADERSHIP_TRAINING',
66
+ 'NETWORK_CONNECTIONS',
67
+ 'EMOTIONAL_SUPPORT',
68
+ 'DIGITAL_TRAINING',
69
+ 'BUSINESS_MENTORING',
70
+ 'NONE',
71
+ ];
72
+ // ─── Schema ───────────────────────────────────────────────────────────────────
73
+ export const step14PrioritiesSchema = z.object({
74
+ // ── 14.1 Top Priorities This Year ─────────────────────────────────────────
75
+ /**
76
+ * Open text: what are the member's most important goals for the next 12 months?
77
+ * Captures individual context that structured tags cannot.
78
+ */
79
+ topPrioritiesThisYear: z.string().trim().optional(),
80
+ /**
81
+ * Structured tags for the same priorities.
82
+ * Used for filtering, grouping, and program matching at scale.
83
+ */
84
+ priorityCategoryTags: z.array(z.enum(PRIORITY_CATEGORY_TAGS)).optional(),
85
+ // ── 14.2 Five-Year Vision ─────────────────────────────────────────────────
86
+ /**
87
+ * Where does the member see themselves in 5 years?
88
+ * Added beyond spec — key signal for leadership pipeline and mentoring.
89
+ */
90
+ fiveYearVision: z.string().trim().optional(),
91
+ // ── 14.3 Biggest Personal Challenge ──────────────────────────────────────
92
+ /**
93
+ * The single biggest challenge or obstacle in their life right now.
94
+ * Added beyond spec — builds empathy map; helps org understand member barriers.
95
+ */
96
+ biggestPersonalChallenge: z.string().trim().optional(),
97
+ // ── 14.4 Skills to Learn ──────────────────────────────────────────────────
98
+ /**
99
+ * Skills the member wants to develop or improve.
100
+ * Added beyond spec; enables matching with org training programs.
101
+ */
102
+ skillsWantToLearn: z.array(z.enum(SKILLS_TO_LEARN)).optional(),
103
+ // ── 14.5 Alignment with Movement ─────────────────────────────────────────
104
+ /**
105
+ * How does the member's personal vision align with the organisation's goals?
106
+ * Open text — surfaces natural advocates and identifies misalignments early.
107
+ */
108
+ alignmentWithMovement: z.string().trim().optional(),
109
+ // ── 14.6 Volunteering Willingness ────────────────────────────────────────
110
+ /**
111
+ * Is the member open to volunteering for org activities?
112
+ * Added beyond spec — fundamental for mobilisation planning.
113
+ */
114
+ openToVolunteering: z.enum(['YES', 'NO', 'MAYBE']).optional(),
115
+ /**
116
+ * How many hours per week can they contribute as a volunteer?
117
+ * Shown only when openToVolunteering is YES or MAYBE.
118
+ */
119
+ volunteeringCapacityPerWeek: z.enum(VOLUNTEERING_CAPACITY).optional(),
120
+ // ── 14.7 How the Org Can Help ─────────────────────────────────────────────
121
+ /**
122
+ * What support does the member need from the organisation?
123
+ * Added beyond spec — turns onboarding into a two-way conversation,
124
+ * creating immediate engagement and value for the member.
125
+ */
126
+ helpNeededFromOrg: z.array(z.enum(HELP_NEEDED_FROM_ORG)).optional(),
127
+ // ── 14.8 Personal Message ─────────────────────────────────────────────────
128
+ /**
129
+ * Anything else the member wants to share — an open farewell message.
130
+ * Added beyond spec; surfaces strong motivations, concerns, or stories.
131
+ * Often the most revealing field in the entire survey.
132
+ */
133
+ personalMessage: z.string().trim().optional(),
134
+ });
135
+ //# sourceMappingURL=step-14.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-14.schema.js","sourceRoot":"","sources":["../src/step-14.schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\n// ─── Enums ────────────────────────────────────────────────────────────────────\n\n/**\n * Life areas the member wants to prioritise in the coming year.\n * Expanded beyond spec: added POLITICAL_ACTIVISM, PERSONAL_GROWTH,\n * CREATIVE_ARTS to capture the full range of meaningful life goals.\n */\nexport const PRIORITY_CATEGORY_TAGS = [\n 'CAREER', // Job growth, promotion, job change\n 'BUSINESS', // Starting or growing a business\n 'EDUCATION', // Degrees, certifications, self-study\n 'HEALTH', // Fitness, mental health, medical\n 'FAMILY', // Family duties, parenting, elder care\n 'MARRIAGE', // Marriage planning or relationship\n 'FINANCE', // Savings, investments, debt repayment\n 'SPIRITUAL', // Religion, meditation, personal faith\n 'SOCIAL_SERVICE', // Community work, volunteering\n 'POLITICAL_ACTIVISM', // Active participation in politics/movement — added beyond spec\n 'PERSONAL_GROWTH', // Self-improvement, habits, mindset — added beyond spec\n 'CREATIVE_ARTS', // Music, writing, art, craft — added beyond spec\n 'OTHER',\n] as const;\n\n/**\n * Skills the member wants to develop.\n * Added beyond spec; enables the org to match training and mentoring programs.\n */\nexport const SKILLS_TO_LEARN = [\n 'PUBLIC_SPEAKING',\n 'LEADERSHIP',\n 'DIGITAL_MARKETING',\n 'DATA_ANALYSIS',\n 'FOREIGN_LANGUAGE',\n 'FINANCIAL_LITERACY',\n 'LEGAL_AWARENESS', // RTI, consumer rights, constitutional rights\n 'FARMING_AGRICULTURE',\n 'TECHNICAL_IT',\n 'TEACHING_TRAINING',\n 'SOCIAL_MEDIA_CONTENT',\n 'NEGOTIATION',\n 'FIRST_AID_HEALTH',\n 'CONFLICT_RESOLUTION',\n 'OTHER',\n] as const;\n\n/**\n * Hours per week the member can offer as a volunteer.\n * Added beyond spec; essential for capacity planning.\n */\nexport const VOLUNTEERING_CAPACITY = [\n 'LESS_THAN_2_HRS', // < 2 hours per week\n 'TWO_TO_5_HRS', // 2–5 hours per week\n 'FIVE_TO_10_HRS', // 5–10 hours per week\n 'MORE_THAN_10_HRS', // 10+ hours per week\n 'FULL_TIME', // Available full-time for org work\n] as const;\n\n/**\n * What kind of support the member needs from the organisation.\n * Added beyond spec — turns this step into a two-way conversation.\n */\nexport const HELP_NEEDED_FROM_ORG = [\n 'CAREER_GUIDANCE',\n 'LEGAL_SUPPORT',\n 'FINANCIAL_AID',\n 'HEALTH_SUPPORT',\n 'EDUCATION_SCHOLARSHIP',\n 'LEADERSHIP_TRAINING',\n 'NETWORK_CONNECTIONS',\n 'EMOTIONAL_SUPPORT',\n 'DIGITAL_TRAINING',\n 'BUSINESS_MENTORING',\n 'NONE',\n] as const;\n\n// ─── Schema ───────────────────────────────────────────────────────────────────\n\nexport const step14PrioritiesSchema = z.object({\n // ── 14.1 Top Priorities This Year ─────────────────────────────────────────\n\n /**\n * Open text: what are the member's most important goals for the next 12 months?\n * Captures individual context that structured tags cannot.\n */\n topPrioritiesThisYear: z.string().trim().optional(),\n\n /**\n * Structured tags for the same priorities.\n * Used for filtering, grouping, and program matching at scale.\n */\n priorityCategoryTags: z.array(z.enum(PRIORITY_CATEGORY_TAGS)).optional(),\n\n // ── 14.2 Five-Year Vision ─────────────────────────────────────────────────\n\n /**\n * Where does the member see themselves in 5 years?\n * Added beyond spec — key signal for leadership pipeline and mentoring.\n */\n fiveYearVision: z.string().trim().optional(),\n\n // ── 14.3 Biggest Personal Challenge ──────────────────────────────────────\n\n /**\n * The single biggest challenge or obstacle in their life right now.\n * Added beyond spec — builds empathy map; helps org understand member barriers.\n */\n biggestPersonalChallenge: z.string().trim().optional(),\n\n // ── 14.4 Skills to Learn ──────────────────────────────────────────────────\n\n /**\n * Skills the member wants to develop or improve.\n * Added beyond spec; enables matching with org training programs.\n */\n skillsWantToLearn: z.array(z.enum(SKILLS_TO_LEARN)).optional(),\n\n // ── 14.5 Alignment with Movement ─────────────────────────────────────────\n\n /**\n * How does the member's personal vision align with the organisation's goals?\n * Open text — surfaces natural advocates and identifies misalignments early.\n */\n alignmentWithMovement: z.string().trim().optional(),\n\n // ── 14.6 Volunteering Willingness ────────────────────────────────────────\n\n /**\n * Is the member open to volunteering for org activities?\n * Added beyond spec — fundamental for mobilisation planning.\n */\n openToVolunteering: z.enum(['YES', 'NO', 'MAYBE']).optional(),\n\n /**\n * How many hours per week can they contribute as a volunteer?\n * Shown only when openToVolunteering is YES or MAYBE.\n */\n volunteeringCapacityPerWeek: z.enum(VOLUNTEERING_CAPACITY).optional(),\n\n // ── 14.7 How the Org Can Help ─────────────────────────────────────────────\n\n /**\n * What support does the member need from the organisation?\n * Added beyond spec — turns onboarding into a two-way conversation,\n * creating immediate engagement and value for the member.\n */\n helpNeededFromOrg: z.array(z.enum(HELP_NEEDED_FROM_ORG)).optional(),\n\n // ── 14.8 Personal Message ─────────────────────────────────────────────────\n\n /**\n * Anything else the member wants to share — an open farewell message.\n * Added beyond spec; surfaces strong motivations, concerns, or stories.\n * Often the most revealing field in the entire survey.\n */\n personalMessage: z.string().trim().optional(),\n});\n\nexport type Step14PrioritiesInput = z.infer<typeof step14PrioritiesSchema>;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "udp-schema",
3
- "version": "0.1.17",
3
+ "version": "0.1.18",
4
4
  "description": "Shared Zod schemas for User Detailed Profile (frontend + backend).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",