tuition-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/enquiry.schema.d.ts +451 -0
- package/dist/enquiry.schema.d.ts.map +1 -0
- package/dist/enquiry.schema.js +18 -0
- package/dist/enquiry.schema.js.map +1 -0
- package/dist/enrollment.schema.d.ts +470 -0
- package/dist/enrollment.schema.d.ts.map +1 -0
- package/dist/enrollment.schema.js +24 -0
- package/dist/enrollment.schema.js.map +1 -0
- package/dist/enums.d.ts +37 -0
- package/dist/enums.d.ts.map +1 -0
- package/dist/enums.js +99 -0
- package/dist/enums.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/institute-profile.schema.d.ts +1020 -0
- package/dist/institute-profile.schema.d.ts.map +1 -0
- package/dist/institute-profile.schema.js +58 -0
- package/dist/institute-profile.schema.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 +480 -0
- package/dist/search.schema.d.ts.map +1 -0
- package/dist/search.schema.js +31 -0
- package/dist/search.schema.js.map +1 -0
- package/dist/subjects.d.ts +24 -0
- package/dist/subjects.d.ts.map +1 -0
- package/dist/subjects.js +510 -0
- package/dist/subjects.js.map +1 -0
- package/dist/tutor-profile.schema.d.ts +1030 -0
- package/dist/tutor-profile.schema.d.ts.map +1 -0
- package/dist/tutor-profile.schema.js +51 -0
- package/dist/tutor-profile.schema.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutor-profile.schema.d.ts","sourceRoot":"","sources":["../src/tutor-profile.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqC,CAAC;AAC3E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { TEACHING_MODE, BOARD, FEE_CYCLE, GENDER_PREFERENCE } from "./enums.js";
|
|
3
|
+
import { ALL_SUBJECTS, SUBJECT_CATEGORY, CLASS_LEVEL } from "./subjects.js";
|
|
4
|
+
// ─── Sub-schemas ─────────────────────────────────────────────────────
|
|
5
|
+
const qualificationSchema = z.object({
|
|
6
|
+
degree: z.string().trim().min(1).max(200),
|
|
7
|
+
institution: z.string().trim().min(1).max(200),
|
|
8
|
+
year: z.number().int().min(1960).max(2030).optional(),
|
|
9
|
+
});
|
|
10
|
+
const tutorSubjectSchema = z.object({
|
|
11
|
+
subjectCategory: z.enum(SUBJECT_CATEGORY),
|
|
12
|
+
subject: z.enum(ALL_SUBJECTS),
|
|
13
|
+
classFrom: z.enum(CLASS_LEVEL),
|
|
14
|
+
classTo: z.enum(CLASS_LEVEL),
|
|
15
|
+
boards: z.array(z.enum(BOARD)).min(1).max(10),
|
|
16
|
+
feePerMonth: z.number().int().min(100).max(10_000_000), // paise
|
|
17
|
+
});
|
|
18
|
+
const geoJsonPointSchema = z.object({
|
|
19
|
+
type: z.literal("Point"),
|
|
20
|
+
coordinates: z.tuple([
|
|
21
|
+
z.number().min(-180).max(180), // longitude
|
|
22
|
+
z.number().min(-90).max(90), // latitude
|
|
23
|
+
]),
|
|
24
|
+
});
|
|
25
|
+
// ─── Create ──────────────────────────────────────────────────────────
|
|
26
|
+
export const createTutorProfileSchema = z.object({
|
|
27
|
+
displayName: z.string().trim().min(2).max(100),
|
|
28
|
+
headline: z.string().trim().min(10).max(200),
|
|
29
|
+
bio: z.string().trim().min(20).max(2000),
|
|
30
|
+
photos: z.array(z.string().url()).min(1).max(5),
|
|
31
|
+
subjects: z.array(tutorSubjectSchema).min(1).max(20),
|
|
32
|
+
teachingMode: z.array(z.enum(TEACHING_MODE)).min(1),
|
|
33
|
+
experienceYears: z.number().int().min(0).max(50),
|
|
34
|
+
qualifications: z.array(qualificationSchema).min(1).max(10),
|
|
35
|
+
specializations: z.array(z.string().trim().max(100)).max(5).optional(),
|
|
36
|
+
feePerSession: z.number().int().min(100).max(10_000_000).optional(), // paise, for per-session billing
|
|
37
|
+
feeCycle: z.enum(FEE_CYCLE).default("monthly"),
|
|
38
|
+
freeTrialSession: z.boolean().default(false),
|
|
39
|
+
location: geoJsonPointSchema,
|
|
40
|
+
locality: z.string().trim().max(200),
|
|
41
|
+
city: z.string().trim().max(100),
|
|
42
|
+
state: z.string().trim().max(100).optional(),
|
|
43
|
+
pincode: z.string().trim().max(10).optional(),
|
|
44
|
+
radiusKm: z.number().min(1).max(50).default(5),
|
|
45
|
+
genderPreference: z.enum(GENDER_PREFERENCE).optional(),
|
|
46
|
+
maxStudents: z.number().int().min(1).max(200).default(20),
|
|
47
|
+
availableSlots: z.string().trim().max(500).optional(),
|
|
48
|
+
});
|
|
49
|
+
// ─── Update ──────────────────────────────────────────────────────────
|
|
50
|
+
export const updateTutorProfileSchema = createTutorProfileSchema.partial();
|
|
51
|
+
//# sourceMappingURL=tutor-profile.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutor-profile.schema.js","sourceRoot":"","sources":["../src/tutor-profile.schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport { TEACHING_MODE, BOARD, FEE_CYCLE, GENDER_PREFERENCE } from \"./enums.js\";\nimport { ALL_SUBJECTS, SUBJECT_CATEGORY, CLASS_LEVEL } from \"./subjects.js\";\n\n// ─── Sub-schemas ─────────────────────────────────────────────────────\n\nconst qualificationSchema = z.object({\n degree: z.string().trim().min(1).max(200),\n institution: z.string().trim().min(1).max(200),\n year: z.number().int().min(1960).max(2030).optional(),\n});\n\nconst tutorSubjectSchema = z.object({\n subjectCategory: z.enum(SUBJECT_CATEGORY),\n subject: z.enum(ALL_SUBJECTS),\n classFrom: z.enum(CLASS_LEVEL),\n classTo: z.enum(CLASS_LEVEL),\n boards: z.array(z.enum(BOARD)).min(1).max(10),\n feePerMonth: z.number().int().min(100).max(10_000_000), // paise\n});\n\nconst geoJsonPointSchema = z.object({\n type: z.literal(\"Point\"),\n coordinates: z.tuple([\n z.number().min(-180).max(180), // longitude\n z.number().min(-90).max(90), // latitude\n ]),\n});\n\n// ─── Create ──────────────────────────────────────────────────────────\n\nexport const createTutorProfileSchema = z.object({\n displayName: z.string().trim().min(2).max(100),\n headline: z.string().trim().min(10).max(200),\n bio: z.string().trim().min(20).max(2000),\n photos: z.array(z.string().url()).min(1).max(5),\n\n subjects: z.array(tutorSubjectSchema).min(1).max(20),\n teachingMode: z.array(z.enum(TEACHING_MODE)).min(1),\n experienceYears: z.number().int().min(0).max(50),\n\n qualifications: z.array(qualificationSchema).min(1).max(10),\n specializations: z.array(z.string().trim().max(100)).max(5).optional(),\n\n feePerSession: z.number().int().min(100).max(10_000_000).optional(), // paise, for per-session billing\n feeCycle: z.enum(FEE_CYCLE).default(\"monthly\"),\n freeTrialSession: z.boolean().default(false),\n\n location: geoJsonPointSchema,\n locality: z.string().trim().max(200),\n city: z.string().trim().max(100),\n state: z.string().trim().max(100).optional(),\n pincode: z.string().trim().max(10).optional(),\n radiusKm: z.number().min(1).max(50).default(5),\n\n genderPreference: z.enum(GENDER_PREFERENCE).optional(),\n maxStudents: z.number().int().min(1).max(200).default(20),\n availableSlots: z.string().trim().max(500).optional(),\n});\n\nexport type CreateTutorProfileInput = z.infer<typeof createTutorProfileSchema>;\n\n// ─── Update ──────────────────────────────────────────────────────────\n\nexport const updateTutorProfileSchema = createTutorProfileSchema.partial();\nexport type UpdateTutorProfileInput = z.infer<typeof updateTutorProfileSchema>;\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tuition-schema",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Shared Zod schemas for the Tuition & Coaching service — single source of truth for API contracts, validation, and TypeScript types.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"README.md"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc -p tsconfig.json",
|
|
23
|
+
"type-check": "tsc --noEmit",
|
|
24
|
+
"prepublishOnly": "npm run build"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"zod",
|
|
28
|
+
"schema",
|
|
29
|
+
"tuition",
|
|
30
|
+
"coaching",
|
|
31
|
+
"typescript"
|
|
32
|
+
],
|
|
33
|
+
"author": "Hari",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"zod": "^3.25.0 || ^4.0.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/node": "^24.10.1",
|
|
40
|
+
"typescript": "^5.9.3",
|
|
41
|
+
"zod": "^4.1.13"
|
|
42
|
+
}
|
|
43
|
+
}
|