@eeplatform/basic-edu 1.3.9 → 1.3.11

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.mjs CHANGED
@@ -1804,7 +1804,7 @@ var addressSchema = Joi3.object({
1804
1804
  sitio: Joi3.string().optional().allow("", null),
1805
1805
  barangay: Joi3.string().required(),
1806
1806
  municipalityCity: Joi3.string().required(),
1807
- province: Joi3.string().required(),
1807
+ province: Joi3.string().optional().allow("", null),
1808
1808
  country: Joi3.string().optional().allow("", null),
1809
1809
  zipCode: Joi3.string().optional().allow("", null)
1810
1810
  });
@@ -1815,93 +1815,98 @@ var personContactSchema = Joi3.object({
1815
1815
  contactNumber: Joi3.string().optional().allow("", null)
1816
1816
  });
1817
1817
  var learnerInfoSchema = Joi3.object({
1818
+ psaBirthCertificateNo: Joi3.string().optional().allow("", null),
1818
1819
  lrn: Joi3.string().optional().allow("", null),
1819
1820
  lastName: Joi3.string().required(),
1820
1821
  firstName: Joi3.string().required(),
1821
1822
  middleName: Joi3.string().optional().allow("", null),
1822
1823
  extensionName: Joi3.string().optional().allow("", null),
1823
- birthDate: Joi3.string().isoDate().required(),
1824
- sex: Joi3.string().valid("Male", "Female").required(),
1824
+ birthDate: Joi3.string().required(),
1825
+ sex: Joi3.string().required(),
1826
+ // Changed to accept any string to match frontend
1825
1827
  age: Joi3.number().integer().min(0).max(150).required(),
1826
- placeOfBirth: Joi3.object({
1827
- municipalityCity: Joi3.string().required(),
1828
- province: Joi3.string().optional().allow("", null),
1829
- country: Joi3.string().optional().allow("", null)
1830
- }).optional(),
1828
+ placeOfBirth: Joi3.string().required(),
1829
+ // Made required to match frontend
1831
1830
  motherTongue: Joi3.string().optional().allow("", null),
1832
- hasDisability: Joi3.boolean().required(),
1833
- disabilityTypes: Joi3.array().items(
1834
- Joi3.string().valid(
1835
- "Visual Impairment",
1836
- "Visual Impairment(Blind)",
1837
- "Visual Impairment(Low Vision)",
1838
- "Hearing Impairment",
1839
- "Learning Disability",
1840
- "Intellectual Disability",
1841
- "Autism Spectrum Disorder",
1842
- "Emotional-Behavioral Disorder",
1843
- "Orthopedic/Physical Handicap",
1844
- "Speech/Language Disorder",
1845
- "Cerebral Palsy",
1846
- "Special Health Problem/Chronic Disease",
1847
- "Multiple Disorder",
1848
- "Cancer"
1849
- )
1850
- ).optional(),
1851
- otherDisabilityDetails: Joi3.string().optional().allow("", null),
1852
- isIndigenous: Joi3.boolean().optional(),
1831
+ fourPsHouseholdId: Joi3.string().optional().allow("", null),
1853
1832
  indigenousCommunity: Joi3.string().optional().allow("", null),
1854
- is4PsBeneficiary: Joi3.boolean().optional(),
1855
- fourPsHouseholdId: Joi3.string().optional().allow("", null)
1833
+ withDisability: Joi3.boolean().required(),
1834
+ // Added to match frontend
1835
+ disabilities: Joi3.array().items(Joi3.string()).optional(),
1836
+ // Changed from disabilityTypes to disabilities
1837
+ otherDisabilityDetails: Joi3.string().optional().allow("", null)
1856
1838
  });
1839
+ var gradeLevels = [
1840
+ "K1",
1841
+ "K2",
1842
+ "grade-1",
1843
+ "grade-2",
1844
+ "grade-3",
1845
+ "grade-4",
1846
+ "grade-5",
1847
+ "grade-6",
1848
+ "grade-7",
1849
+ "grade-8",
1850
+ "grade-9",
1851
+ "grade-10",
1852
+ "grade-11",
1853
+ "grade-12"
1854
+ ];
1857
1855
  var schemaEnrollment = Joi3.object({
1858
- _id: Joi3.string().hex().optional(),
1859
- region: Joi3.string().hex().required(),
1860
- sdo: Joi3.string().hex().required(),
1861
- school: Joi3.string().hex().required(),
1856
+ _id: Joi3.string().optional(),
1857
+ region: Joi3.string().required(),
1858
+ // Changed from hex to string to match frontend
1859
+ regionName: Joi3.string().optional().allow("", null),
1860
+ province: Joi3.string().optional().allow("", null),
1861
+ // Made required to match frontend
1862
+ cityMunicipality: Joi3.string().required(),
1863
+ // Made required to match frontend
1864
+ division: Joi3.string().required(),
1865
+ // Changed from hex to string to match frontend
1866
+ divisionName: Joi3.string().optional().allow("", null),
1867
+ school: Joi3.string().required(),
1868
+ // Changed from hex to string to match frontend
1869
+ schoolName: Joi3.string().optional().allow("", null),
1870
+ // Added to match frontend
1862
1871
  schoolYear: Joi3.string().required(),
1863
- gradeLevelToEnroll: Joi3.string().required(),
1872
+ gradeLevel: Joi3.string().valid(...gradeLevels).required(),
1873
+ returningLearner: Joi3.boolean().required(),
1874
+ // Added to match frontend
1864
1875
  learnerInfo: learnerInfoSchema.required(),
1865
1876
  parentGuardianInfo: Joi3.object({
1866
- father: personContactSchema.optional(),
1867
- mother: personContactSchema.optional(),
1868
- legalGuardian: personContactSchema.optional()
1877
+ father: personContactSchema.required(),
1878
+ // Made required to match frontend
1879
+ mother: personContactSchema.required(),
1880
+ // Made required to match frontend
1881
+ legalGuardian: personContactSchema.required()
1882
+ // Made required to match frontend
1869
1883
  }).required(),
1870
- addressInfo: Joi3.object({
1871
- currentAddress: addressSchema.required(),
1872
- permanentAddress: addressSchema.optional(),
1884
+ address: Joi3.object({
1885
+ // Changed from addressInfo to address
1886
+ current: addressSchema.required(),
1887
+ // Changed from currentAddress to current
1888
+ permanent: addressSchema.required(),
1889
+ // Changed from permanentAddress to permanent and made required
1873
1890
  sameAsCurrent: Joi3.boolean().optional()
1874
1891
  }).required(),
1875
1892
  returningLearnerInfo: Joi3.object({
1876
- lastGradeLevelCompleted: Joi3.string().required(),
1877
- lastSchoolYearCompleted: Joi3.string().required(),
1878
- lastSchoolAttended: Joi3.string().required(),
1879
- lastSchoolId: Joi3.string().optional().allow("", null),
1880
- isReturningLearner: Joi3.boolean().required(),
1881
- isTransferIn: Joi3.boolean().required()
1893
+ lastGradeLevelCompleted: Joi3.string().optional().allow("", null),
1894
+ lastSchoolYearCompleted: Joi3.string().optional().allow("", null),
1895
+ lastSchoolAttended: Joi3.string().optional().allow("", null),
1896
+ lastSchoolId: Joi3.string().optional().allow("", null)
1882
1897
  }).optional(),
1883
1898
  seniorHighInfo: Joi3.object({
1884
- semester: Joi3.string().valid("1st", "2nd").required(),
1885
- track: Joi3.string().required(),
1886
- strand: Joi3.string().required()
1899
+ semester: Joi3.string().optional().allow("", null),
1900
+ track: Joi3.string().optional().allow("", null),
1901
+ strand: Joi3.string().optional().allow("", null)
1887
1902
  }).optional(),
1888
- preferredLearningModalities: Joi3.array().items(
1889
- Joi3.string().valid(
1890
- "Modular (Print)",
1891
- "Modular (Digital)",
1892
- "Online",
1893
- "Radio-Based Instruction",
1894
- "Educational Television",
1895
- "Blended",
1896
- "Homeschooling"
1897
- )
1898
- ).optional(),
1899
- certification: Joi3.object({
1900
- certifiedBy: Joi3.string().required(),
1901
- date: Joi3.string().isoDate().required(),
1902
- consentGiven: Joi3.boolean().required()
1903
- }).required(),
1903
+ alternativeLearningOptions: Joi3.array().items(Joi3.string()).optional(),
1904
+ // Added to match frontend
1905
+ isCertifiedAndConsented: Joi3.boolean().required(),
1906
+ // Simplified certification to match frontend
1904
1907
  status: Joi3.string().optional().allow("", null),
1908
+ remarks: Joi3.string().optional().allow("", null),
1909
+ // Added to match frontend
1905
1910
  rejectionReason: Joi3.string().optional().allow("", null),
1906
1911
  createdAt: Joi3.date().optional().allow("", null),
1907
1912
  updatedAt: Joi3.date().optional().allow("", null),
@@ -1923,42 +1928,34 @@ function MEnrollment(value) {
1923
1928
  throw new BadRequestError4("Invalid _id format");
1924
1929
  }
1925
1930
  }
1926
- if (typeof value.region === "string") {
1927
- try {
1928
- value.region = new ObjectId3(value.region);
1929
- } catch (error2) {
1930
- throw new BadRequestError4("Invalid region format");
1931
- }
1932
- }
1933
- if (typeof value.sdo === "string") {
1934
- try {
1935
- value.sdo = new ObjectId3(value.sdo);
1936
- } catch (error2) {
1937
- throw new BadRequestError4("Invalid sdo format");
1938
- }
1939
- }
1940
- if (typeof value.school === "string") {
1941
- try {
1942
- value.school = new ObjectId3(value.school);
1943
- } catch (error2) {
1944
- throw new BadRequestError4("Invalid school format");
1945
- }
1946
- }
1947
1931
  return {
1948
1932
  _id: value._id ?? void 0,
1949
1933
  region: value.region,
1950
- sdo: value.sdo,
1934
+ regionName: value.regionName ?? "",
1935
+ province: value.province ?? "",
1936
+ cityMunicipality: value.cityMunicipality ?? "",
1937
+ division: value.division,
1938
+ divisionName: value.divisionName ?? "",
1951
1939
  school: value.school,
1940
+ schoolName: value.schoolName ?? "",
1941
+ // Added to match frontend
1952
1942
  schoolYear: value.schoolYear ?? "",
1953
- gradeLevelToEnroll: value.gradeLevelToEnroll ?? "",
1943
+ gradeLevel: value.gradeLevel ?? "",
1944
+ returningLearner: value.returningLearner ?? false,
1945
+ // Added to match frontend
1954
1946
  learnerInfo: value.learnerInfo,
1955
1947
  parentGuardianInfo: value.parentGuardianInfo,
1956
- addressInfo: value.addressInfo,
1948
+ address: value.address,
1949
+ // Changed from addressInfo to address
1957
1950
  returningLearnerInfo: value.returningLearnerInfo,
1958
1951
  seniorHighInfo: value.seniorHighInfo,
1959
- preferredLearningModalities: value.preferredLearningModalities ?? [],
1960
- certification: value.certification,
1961
- status: value.status ?? "active",
1952
+ alternativeLearningOptions: value.alternativeLearningOptions ?? [],
1953
+ // Added to match frontend
1954
+ isCertifiedAndConsented: value.isCertifiedAndConsented ?? true,
1955
+ // Simplified certification
1956
+ status: value.status ?? "pending",
1957
+ remarks: value.remarks ?? "",
1958
+ // Added to match frontend
1962
1959
  rejectionReason: value.rejectionReason ?? "",
1963
1960
  createdAt: value.createdAt ?? /* @__PURE__ */ new Date(),
1964
1961
  updatedAt: value.updatedAt ?? "",
@@ -1981,28 +1978,18 @@ import {
1981
1978
  useCache as useCache2
1982
1979
  } from "@eeplatform/nodejs-utils";
1983
1980
  import { ObjectId as ObjectId4 } from "mongodb";
1981
+ import Joi4 from "joi";
1984
1982
  function useEnrollmentRepo() {
1985
1983
  const db = useAtlas2.getDb();
1986
1984
  if (!db) {
1987
1985
  throw new Error("Unable to connect to server.");
1988
1986
  }
1989
- const namespace_collection = "school.enrollments";
1987
+ const namespace_collection = "deped.school.enrollments";
1990
1988
  const collection = db.collection(namespace_collection);
1991
1989
  const { getCache, setCache, delNamespace } = useCache2(namespace_collection);
1992
1990
  async function createIndexes() {
1993
1991
  try {
1994
1992
  await collection.createIndexes([
1995
- {
1996
- key: {
1997
- school: 1,
1998
- schoolYear: 1,
1999
- "learnerInfo.lrn": 1,
2000
- status: 1
2001
- },
2002
- unique: true,
2003
- partialFilterExpression: { status: "active" },
2004
- name: "unique_enrollment_index"
2005
- },
2006
1993
  { key: { status: 1 } },
2007
1994
  { key: { school: 1, status: 1 } },
2008
1995
  { key: { "learnerInfo.lrn": 1 } },
@@ -2091,11 +2078,7 @@ function useEnrollmentRepo() {
2091
2078
  status
2092
2079
  };
2093
2080
  if (school) {
2094
- try {
2095
- query.school = new ObjectId4(school);
2096
- } catch (error) {
2097
- throw new BadRequestError5("Invalid school ID format.");
2098
- }
2081
+ query.school = school;
2099
2082
  }
2100
2083
  if (schoolYear) {
2101
2084
  query.schoolYear = schoolYear;
@@ -2149,6 +2132,7 @@ function useEnrollmentRepo() {
2149
2132
  from: "admin.schools",
2150
2133
  localField: "school",
2151
2134
  foreignField: "_id",
2135
+ // School collection still uses ObjectId, we'll need to convert during lookup
2152
2136
  as: "schoolInfo"
2153
2137
  }
2154
2138
  },
@@ -2157,15 +2141,19 @@ function useEnrollmentRepo() {
2157
2141
  from: "admin.regions",
2158
2142
  localField: "region",
2159
2143
  foreignField: "_id",
2144
+ // Region collection still uses ObjectId, we'll need to convert during lookup
2160
2145
  as: "regionInfo"
2161
2146
  }
2162
2147
  },
2163
2148
  {
2164
2149
  $lookup: {
2165
2150
  from: "admin.divisions",
2166
- localField: "sdo",
2151
+ localField: "division",
2152
+ // Changed from sdo to division to match frontend
2167
2153
  foreignField: "_id",
2168
- as: "sdoInfo"
2154
+ // Division collection still uses ObjectId, we'll need to convert during lookup
2155
+ as: "divisionInfo"
2156
+ // Changed from sdoInfo to divisionInfo
2169
2157
  }
2170
2158
  },
2171
2159
  { $sort: sort },
@@ -2234,7 +2222,7 @@ function useEnrollmentRepo() {
2234
2222
  async function getByLrn(lrn, schoolYear) {
2235
2223
  const query = {
2236
2224
  "learnerInfo.lrn": lrn,
2237
- status: "active"
2225
+ status: "accepted"
2238
2226
  };
2239
2227
  if (schoolYear) {
2240
2228
  query.schoolYear = schoolYear;
@@ -2304,12 +2292,8 @@ function useEnrollmentRepo() {
2304
2292
  }
2305
2293
  }
2306
2294
  async function getBySchoolAndYear(school, schoolYear) {
2307
- try {
2308
- if (typeof school === "string") {
2309
- school = new ObjectId4(school);
2310
- }
2311
- } catch (error) {
2312
- throw new BadRequestError5("Invalid school ID format.");
2295
+ if (typeof school === "object") {
2296
+ school = school.toString();
2313
2297
  }
2314
2298
  const query = {
2315
2299
  school,
@@ -2349,6 +2333,110 @@ function useEnrollmentRepo() {
2349
2333
  );
2350
2334
  }
2351
2335
  }
2336
+ async function getByApplicantInfo({
2337
+ school = "",
2338
+ schoolYear = "",
2339
+ gradeLevel = "",
2340
+ firstName = "",
2341
+ lastName = "",
2342
+ middleName = "",
2343
+ birthDate = "",
2344
+ placeOfBirth = ""
2345
+ } = {}) {
2346
+ const validation = Joi4.object({
2347
+ school: Joi4.string().required(),
2348
+ schoolYear: Joi4.string().required(),
2349
+ gradeLevel: Joi4.string().required(),
2350
+ firstName: Joi4.string().required(),
2351
+ lastName: Joi4.string().required(),
2352
+ middleName: Joi4.string().optional().allow("", null),
2353
+ birthDate: Joi4.string().required(),
2354
+ placeOfBirth: Joi4.string().required()
2355
+ });
2356
+ const { error } = validation.validate({
2357
+ school,
2358
+ schoolYear,
2359
+ gradeLevel,
2360
+ firstName,
2361
+ lastName,
2362
+ middleName,
2363
+ birthDate,
2364
+ placeOfBirth
2365
+ });
2366
+ if (error) {
2367
+ throw new BadRequestError5(`Validation error: ${error.message}`);
2368
+ }
2369
+ const query = {
2370
+ school,
2371
+ schoolYear,
2372
+ gradeLevel,
2373
+ "learnerInfo.firstName": {
2374
+ $regex: `^${firstName}$`,
2375
+ $options: "i"
2376
+ },
2377
+ "learnerInfo.lastName": {
2378
+ $regex: `^${lastName}$`,
2379
+ $options: "i"
2380
+ },
2381
+ "learnerInfo.birthDate": birthDate,
2382
+ "learnerInfo.placeOfBirth": {
2383
+ $regex: `^${placeOfBirth}$`,
2384
+ $options: "i"
2385
+ }
2386
+ };
2387
+ const cacheKeyOptions = {
2388
+ school,
2389
+ schoolYear,
2390
+ gradeLevel,
2391
+ firstName,
2392
+ lastName,
2393
+ birthDate,
2394
+ placeOfBirth
2395
+ };
2396
+ if (middleName && middleName.trim() !== "") {
2397
+ query["learnerInfo.middleName"] = {
2398
+ $regex: `^${middleName}$`,
2399
+ $options: "i"
2400
+ };
2401
+ cacheKeyOptions.middleName = middleName;
2402
+ }
2403
+ const cacheKey = makeCacheKey2(namespace_collection, cacheKeyOptions);
2404
+ const cachedData = await getCache(cacheKey);
2405
+ if (cachedData) {
2406
+ logger5.log({
2407
+ level: "info",
2408
+ message: `Cache hit for enrollment by applicant info: ${cacheKey}`
2409
+ });
2410
+ return cachedData;
2411
+ }
2412
+ try {
2413
+ const data = await collection.findOne({
2414
+ ...query,
2415
+ status: "accepted"
2416
+ });
2417
+ const length = await collection.countDocuments({
2418
+ ...query,
2419
+ status: { $nin: ["accepted", "deleted"] }
2420
+ });
2421
+ const result = { accepted: data ? true : false, length };
2422
+ setCache(cacheKey, result, 600).then(() => {
2423
+ logger5.log({
2424
+ level: "info",
2425
+ message: `Cache set for enrollment by applicant info: ${cacheKey}`
2426
+ });
2427
+ }).catch((err) => {
2428
+ logger5.log({
2429
+ level: "error",
2430
+ message: `Failed to set cache for enrollment by applicant info: ${err.message}`
2431
+ });
2432
+ });
2433
+ return result;
2434
+ } catch (error2) {
2435
+ throw new InternalServerError2(
2436
+ "Failed to get enrollment by applicant info."
2437
+ );
2438
+ }
2439
+ }
2352
2440
  return {
2353
2441
  createIndexes,
2354
2442
  add,
@@ -2357,6 +2445,7 @@ function useEnrollmentRepo() {
2357
2445
  getById,
2358
2446
  getByLrn,
2359
2447
  deleteById,
2448
+ getByApplicantInfo,
2360
2449
  getBySchoolAndYear
2361
2450
  };
2362
2451
  }
@@ -2376,39 +2465,52 @@ function useEnrollmentService() {
2376
2465
  getById: _getById,
2377
2466
  getByLrn: _getByLrn,
2378
2467
  deleteById: _deleteById,
2379
- getBySchoolAndYear: _getBySchoolAndYear
2468
+ getBySchoolAndYear: _getBySchoolAndYear,
2469
+ getByApplicantInfo: _getByApplicantInfo
2380
2470
  } = useEnrollmentRepo();
2381
2471
  async function createEnrollment(value) {
2382
2472
  try {
2383
- if (value.learnerInfo.lrn) {
2384
- const existingEnrollment = await _getByLrn(
2385
- value.learnerInfo.lrn,
2386
- value.schoolYear
2473
+ const applicantInfo = await _getByApplicantInfo({
2474
+ firstName: value.learnerInfo.firstName,
2475
+ lastName: value.learnerInfo.lastName,
2476
+ middleName: value.learnerInfo.middleName,
2477
+ birthDate: value.learnerInfo.birthDate,
2478
+ placeOfBirth: value.learnerInfo.placeOfBirth,
2479
+ gradeLevel: value.gradeLevel,
2480
+ schoolYear: value.schoolYear,
2481
+ school: value.school
2482
+ });
2483
+ if (applicantInfo.accepted) {
2484
+ throw new BadRequestError6(
2485
+ "This applicant already has an accepted application for the same school year and grade level."
2387
2486
  );
2388
- if (existingEnrollment) {
2389
- throw new BadRequestError6(
2390
- "Learner is already enrolled for this school year."
2391
- );
2392
- }
2393
2487
  }
2394
- const gradeLevel = value.gradeLevelToEnroll.toLowerCase();
2488
+ if (applicantInfo.length >= 3) {
2489
+ throw new BadRequestError6(
2490
+ "This applicant has already submitted applications to 3 schools for the same school year and grade level. Maximum limit reached."
2491
+ );
2492
+ }
2493
+ const gradeLevel = value.gradeLevel.toLowerCase();
2395
2494
  const age = value.learnerInfo.age;
2396
- if (gradeLevel.includes("kindergarten") && age < 5) {
2495
+ if (["K1", "K2"].includes(gradeLevel) && age < 5) {
2397
2496
  throw new BadRequestError6("Learner is too young for Kindergarten.");
2398
2497
  }
2399
- if (gradeLevel.includes("grade 1") && age < 6) {
2498
+ if (gradeLevel === "grade-1" && age < 6) {
2400
2499
  throw new BadRequestError6("Learner is too young for Grade 1.");
2401
2500
  }
2402
2501
  const { father, mother, legalGuardian } = value.parentGuardianInfo;
2403
- if (!father && !mother && !legalGuardian) {
2502
+ const hasFatherInfo = father && (father.firstName || father.lastName);
2503
+ const hasMotherInfo = mother && (mother.firstName || mother.lastName);
2504
+ const hasGuardianInfo = legalGuardian && (legalGuardian.firstName || legalGuardian.lastName);
2505
+ if (!hasFatherInfo && !hasMotherInfo && !hasGuardianInfo) {
2404
2506
  throw new BadRequestError6(
2405
2507
  "At least one parent or legal guardian information is required."
2406
2508
  );
2407
2509
  }
2408
- if (gradeLevel.includes("grade 11") || gradeLevel.includes("grade 12")) {
2409
- if (!value.seniorHighInfo) {
2510
+ if (gradeLevel.includes("grade-11") || gradeLevel.includes("grade-12")) {
2511
+ if (!value.seniorHighInfo || !value.seniorHighInfo.track || !value.seniorHighInfo.strand) {
2410
2512
  throw new BadRequestError6(
2411
- "Senior high school information is required for Grade 11 and 12."
2513
+ "Senior high school information (track and strand) is required for Grade 11 and 12."
2412
2514
  );
2413
2515
  }
2414
2516
  }
@@ -2642,7 +2744,7 @@ function useEnrollmentService() {
2642
2744
 
2643
2745
  // src/resources/enrollment/enrollment.controller.ts
2644
2746
  import { BadRequestError as BadRequestError7, logger as logger7 } from "@eeplatform/nodejs-utils";
2645
- import Joi4 from "joi";
2747
+ import Joi5 from "joi";
2646
2748
  function useEnrollmentController() {
2647
2749
  const {
2648
2750
  createEnrollment: _createEnrollment,
@@ -2674,18 +2776,18 @@ function useEnrollmentController() {
2674
2776
  async function updateById(req, res, next) {
2675
2777
  const value = req.body;
2676
2778
  const id = req.params.id ?? "";
2677
- const validation = Joi4.object({
2678
- id: Joi4.string().hex().required(),
2679
- value: Joi4.object({
2680
- learnerInfo: Joi4.object().optional(),
2681
- parentGuardianInfo: Joi4.object().optional(),
2682
- addressInfo: Joi4.object().optional(),
2683
- returningLearnerInfo: Joi4.object().optional(),
2684
- seniorHighInfo: Joi4.object().optional(),
2685
- preferredLearningModalities: Joi4.array().optional(),
2686
- certification: Joi4.object().optional(),
2687
- status: Joi4.string().valid("active", "pending", "approved", "rejected", "deleted").optional(),
2688
- rejectionReason: Joi4.string().optional().allow("", null)
2779
+ const validation = Joi5.object({
2780
+ id: Joi5.string().hex().required(),
2781
+ value: Joi5.object({
2782
+ learnerInfo: Joi5.object().optional(),
2783
+ parentGuardianInfo: Joi5.object().optional(),
2784
+ addressInfo: Joi5.object().optional(),
2785
+ returningLearnerInfo: Joi5.object().optional(),
2786
+ seniorHighInfo: Joi5.object().optional(),
2787
+ preferredLearningModalities: Joi5.array().optional(),
2788
+ certification: Joi5.object().optional(),
2789
+ status: Joi5.string().valid("active", "pending", "approved", "rejected", "deleted").optional(),
2790
+ rejectionReason: Joi5.string().optional().allow("", null)
2689
2791
  }).min(1)
2690
2792
  });
2691
2793
  const { error } = validation.validate({ id, value });
@@ -2704,14 +2806,14 @@ function useEnrollmentController() {
2704
2806
  }
2705
2807
  async function getAll(req, res, next) {
2706
2808
  const query = req.query;
2707
- const validation = Joi4.object({
2708
- page: Joi4.number().min(1).optional().allow("", null),
2709
- limit: Joi4.number().min(1).max(100).optional().allow("", null),
2710
- search: Joi4.string().optional().allow("", null),
2711
- status: Joi4.string().optional().allow("", null),
2712
- school: Joi4.string().hex().optional().allow("", null),
2713
- schoolYear: Joi4.string().optional().allow("", null),
2714
- gradeLevelToEnroll: Joi4.string().optional().allow("", null)
2809
+ const validation = Joi5.object({
2810
+ page: Joi5.number().min(1).optional().allow("", null),
2811
+ limit: Joi5.number().min(1).max(100).optional().allow("", null),
2812
+ search: Joi5.string().optional().allow("", null),
2813
+ status: Joi5.string().optional().allow("", null),
2814
+ school: Joi5.string().hex().optional().allow("", null),
2815
+ schoolYear: Joi5.string().optional().allow("", null),
2816
+ gradeLevelToEnroll: Joi5.string().optional().allow("", null)
2715
2817
  });
2716
2818
  const { error } = validation.validate(query);
2717
2819
  if (error) {
@@ -2749,7 +2851,7 @@ function useEnrollmentController() {
2749
2851
  }
2750
2852
  async function getById(req, res, next) {
2751
2853
  const id = req.params.id ?? "";
2752
- const validation = Joi4.string().hex().required();
2854
+ const validation = Joi5.string().hex().required();
2753
2855
  const { error } = validation.validate(id);
2754
2856
  if (error) {
2755
2857
  next(new BadRequestError7(error.message));
@@ -2766,9 +2868,9 @@ function useEnrollmentController() {
2766
2868
  async function getByLrn(req, res, next) {
2767
2869
  const lrn = req.params.lrn ?? "";
2768
2870
  const schoolYear = req.query.schoolYear;
2769
- const validation = Joi4.object({
2770
- lrn: Joi4.string().required(),
2771
- schoolYear: Joi4.string().optional().allow("", null)
2871
+ const validation = Joi5.object({
2872
+ lrn: Joi5.string().required(),
2873
+ schoolYear: Joi5.string().optional().allow("", null)
2772
2874
  });
2773
2875
  const { error } = validation.validate({ lrn, schoolYear });
2774
2876
  if (error) {
@@ -2786,9 +2888,9 @@ function useEnrollmentController() {
2786
2888
  async function deleteById(req, res, next) {
2787
2889
  const id = req.params.id ?? "";
2788
2890
  const deletedBy = req.body.deletedBy;
2789
- const validation = Joi4.object({
2790
- id: Joi4.string().hex().required(),
2791
- deletedBy: Joi4.string().optional().allow("", null)
2891
+ const validation = Joi5.object({
2892
+ id: Joi5.string().hex().required(),
2893
+ deletedBy: Joi5.string().optional().allow("", null)
2792
2894
  });
2793
2895
  const { error } = validation.validate({ id, deletedBy });
2794
2896
  if (error) {
@@ -2806,9 +2908,9 @@ function useEnrollmentController() {
2806
2908
  async function getBySchoolAndYear(req, res, next) {
2807
2909
  const school = req.params.school ?? "";
2808
2910
  const schoolYear = req.params.schoolYear ?? "";
2809
- const validation = Joi4.object({
2810
- school: Joi4.string().hex().required(),
2811
- schoolYear: Joi4.string().required()
2911
+ const validation = Joi5.object({
2912
+ school: Joi5.string().hex().required(),
2913
+ schoolYear: Joi5.string().required()
2812
2914
  });
2813
2915
  const { error } = validation.validate({ school, schoolYear });
2814
2916
  if (error) {
@@ -2826,9 +2928,9 @@ function useEnrollmentController() {
2826
2928
  async function approve(req, res, next) {
2827
2929
  const id = req.params.id ?? "";
2828
2930
  const approvedBy = req.body.approvedBy;
2829
- const validation = Joi4.object({
2830
- id: Joi4.string().hex().required(),
2831
- approvedBy: Joi4.string().required()
2931
+ const validation = Joi5.object({
2932
+ id: Joi5.string().hex().required(),
2933
+ approvedBy: Joi5.string().required()
2832
2934
  });
2833
2935
  const { error } = validation.validate({ id, approvedBy });
2834
2936
  if (error) {
@@ -2848,10 +2950,10 @@ function useEnrollmentController() {
2848
2950
  const id = req.params.id ?? "";
2849
2951
  const rejectedBy = req.body.rejectedBy;
2850
2952
  const rejectionReason = req.body.rejectionReason;
2851
- const validation = Joi4.object({
2852
- id: Joi4.string().hex().required(),
2853
- rejectedBy: Joi4.string().required(),
2854
- rejectionReason: Joi4.string().optional().allow("", null)
2953
+ const validation = Joi5.object({
2954
+ id: Joi5.string().hex().required(),
2955
+ rejectedBy: Joi5.string().required(),
2956
+ rejectionReason: Joi5.string().optional().allow("", null)
2855
2957
  });
2856
2958
  const { error } = validation.validate({ id, rejectedBy, rejectionReason });
2857
2959
  if (error) {
@@ -2870,9 +2972,9 @@ function useEnrollmentController() {
2870
2972
  async function getStatsBySchool(req, res, next) {
2871
2973
  const school = req.params.school ?? "";
2872
2974
  const schoolYear = req.query.schoolYear;
2873
- const validation = Joi4.object({
2874
- school: Joi4.string().hex().required(),
2875
- schoolYear: Joi4.string().optional().allow("", null)
2975
+ const validation = Joi5.object({
2976
+ school: Joi5.string().hex().required(),
2977
+ schoolYear: Joi5.string().optional().allow("", null)
2876
2978
  });
2877
2979
  const { error } = validation.validate({ school, schoolYear });
2878
2980
  if (error) {
@@ -2939,26 +3041,26 @@ function useEnrollmentController() {
2939
3041
 
2940
3042
  // src/resources/grade-level/grade-level.model.ts
2941
3043
  import { BadRequestError as BadRequestError8, logger as logger8 } from "@eeplatform/nodejs-utils";
2942
- import Joi5 from "joi";
3044
+ import Joi6 from "joi";
2943
3045
  import { ObjectId as ObjectId5 } from "mongodb";
2944
- var schemaGradeLevel = Joi5.object({
2945
- _id: Joi5.string().hex().optional(),
2946
- school: Joi5.string().hex().optional(),
2947
- educationLevel: Joi5.string().required(),
2948
- gradeLevel: Joi5.string().required(),
2949
- tracks: Joi5.array().items(Joi5.string()).optional(),
2950
- trackStrands: Joi5.array().items(Joi5.string()).optional(),
2951
- teachingStyle: Joi5.string().required(),
2952
- maxNumberOfLearners: Joi5.number().required(),
2953
- defaultStartTime: Joi5.string().optional().allow("", null),
2954
- defaultEndTime: Joi5.string().optional().allow("", null),
2955
- status: Joi5.string().optional().allow("", null),
2956
- createdAt: Joi5.date().optional().allow("", null),
2957
- updatedAt: Joi5.date().optional().allow("", null),
2958
- deletedAt: Joi5.date().optional().allow("", null),
2959
- createdBy: Joi5.string().optional().allow("", null),
2960
- updatedBy: Joi5.string().optional().allow("", null),
2961
- deletedBy: Joi5.string().optional().allow("", null)
3046
+ var schemaGradeLevel = Joi6.object({
3047
+ _id: Joi6.string().hex().optional(),
3048
+ school: Joi6.string().hex().optional(),
3049
+ educationLevel: Joi6.string().required(),
3050
+ gradeLevel: Joi6.string().required(),
3051
+ tracks: Joi6.array().items(Joi6.string()).optional(),
3052
+ trackStrands: Joi6.array().items(Joi6.string()).optional(),
3053
+ teachingStyle: Joi6.string().required(),
3054
+ maxNumberOfLearners: Joi6.number().required(),
3055
+ defaultStartTime: Joi6.string().optional().allow("", null),
3056
+ defaultEndTime: Joi6.string().optional().allow("", null),
3057
+ status: Joi6.string().optional().allow("", null),
3058
+ createdAt: Joi6.date().optional().allow("", null),
3059
+ updatedAt: Joi6.date().optional().allow("", null),
3060
+ deletedAt: Joi6.date().optional().allow("", null),
3061
+ createdBy: Joi6.string().optional().allow("", null),
3062
+ updatedBy: Joi6.string().optional().allow("", null),
3063
+ deletedBy: Joi6.string().optional().allow("", null)
2962
3064
  });
2963
3065
  function MGradeLevel(value) {
2964
3066
  const { error } = schemaGradeLevel.validate(value);
@@ -3370,7 +3472,7 @@ function useGradeLevelRepo() {
3370
3472
 
3371
3473
  // src/resources/grade-level/grade-level.controller.ts
3372
3474
  import { BadRequestError as BadRequestError10, logger as logger10 } from "@eeplatform/nodejs-utils";
3373
- import Joi6 from "joi";
3475
+ import Joi7 from "joi";
3374
3476
  function useGradeLevelController() {
3375
3477
  const {
3376
3478
  getAll: _getAll,
@@ -3402,17 +3504,17 @@ function useGradeLevelController() {
3402
3504
  async function updateById(req, res, next) {
3403
3505
  const value = req.body;
3404
3506
  const id = req.params.id ?? "";
3405
- const validation = Joi6.object({
3406
- id: Joi6.string().hex().required(),
3407
- value: Joi6.object({
3408
- school: Joi6.string().hex().optional(),
3409
- educationLevel: Joi6.string().optional(),
3410
- gradeLevel: Joi6.string().optional(),
3411
- teachingStyle: Joi6.string().optional(),
3412
- maxTeachingHoursPerDay: Joi6.number().integer().min(0).optional(),
3413
- maxTeachingHoursPerWeek: Joi6.number().integer().min(0).optional(),
3414
- defaultStartTime: Joi6.string().optional().allow("", null),
3415
- defaultEndTime: Joi6.string().optional().allow("", null)
3507
+ const validation = Joi7.object({
3508
+ id: Joi7.string().hex().required(),
3509
+ value: Joi7.object({
3510
+ school: Joi7.string().hex().optional(),
3511
+ educationLevel: Joi7.string().optional(),
3512
+ gradeLevel: Joi7.string().optional(),
3513
+ teachingStyle: Joi7.string().optional(),
3514
+ maxTeachingHoursPerDay: Joi7.number().integer().min(0).optional(),
3515
+ maxTeachingHoursPerWeek: Joi7.number().integer().min(0).optional(),
3516
+ defaultStartTime: Joi7.string().optional().allow("", null),
3517
+ defaultEndTime: Joi7.string().optional().allow("", null)
3416
3518
  }).min(1)
3417
3519
  });
3418
3520
  const { error } = validation.validate({ id, value });
@@ -3434,15 +3536,15 @@ function useGradeLevelController() {
3434
3536
  }
3435
3537
  async function getAll(req, res, next) {
3436
3538
  const query = req.query;
3437
- const validation = Joi6.object({
3438
- page: Joi6.number().min(1).optional().allow("", null),
3439
- limit: Joi6.number().min(1).optional().allow("", null),
3440
- search: Joi6.string().optional().allow("", null),
3441
- educationLevel: Joi6.string().optional().allow("", null),
3442
- gradeLevel: Joi6.string().optional().allow("", null),
3443
- teachingStyle: Joi6.string().optional().allow("", null),
3444
- school: Joi6.string().hex().optional().allow("", null),
3445
- status: Joi6.string().optional().allow("", null)
3539
+ const validation = Joi7.object({
3540
+ page: Joi7.number().min(1).optional().allow("", null),
3541
+ limit: Joi7.number().min(1).optional().allow("", null),
3542
+ search: Joi7.string().optional().allow("", null),
3543
+ educationLevel: Joi7.string().optional().allow("", null),
3544
+ gradeLevel: Joi7.string().optional().allow("", null),
3545
+ teachingStyle: Joi7.string().optional().allow("", null),
3546
+ school: Joi7.string().hex().optional().allow("", null),
3547
+ status: Joi7.string().optional().allow("", null)
3446
3548
  });
3447
3549
  const { error } = validation.validate(query);
3448
3550
  if (error) {
@@ -3467,7 +3569,7 @@ function useGradeLevelController() {
3467
3569
  const school = req.query.school ?? "";
3468
3570
  const search = req.query.search ?? "";
3469
3571
  try {
3470
- const gradeLevels = await _getAll({
3572
+ const gradeLevels2 = await _getAll({
3471
3573
  page,
3472
3574
  limit,
3473
3575
  sort: sortObj,
@@ -3478,7 +3580,7 @@ function useGradeLevelController() {
3478
3580
  school,
3479
3581
  search
3480
3582
  });
3481
- res.json(gradeLevels);
3583
+ res.json(gradeLevels2);
3482
3584
  return;
3483
3585
  } catch (error2) {
3484
3586
  next(error2);
@@ -3486,8 +3588,8 @@ function useGradeLevelController() {
3486
3588
  }
3487
3589
  async function getById(req, res, next) {
3488
3590
  const id = req.params.id;
3489
- const validation = Joi6.object({
3490
- id: Joi6.string().hex().required()
3591
+ const validation = Joi7.object({
3592
+ id: Joi7.string().hex().required()
3491
3593
  });
3492
3594
  const { error } = validation.validate({ id });
3493
3595
  if (error) {
@@ -3507,8 +3609,8 @@ function useGradeLevelController() {
3507
3609
  }
3508
3610
  async function deleteById(req, res, next) {
3509
3611
  const id = req.params.id;
3510
- const validation = Joi6.object({
3511
- id: Joi6.string().hex().required()
3612
+ const validation = Joi7.object({
3613
+ id: Joi7.string().hex().required()
3512
3614
  });
3513
3615
  const { error } = validation.validate({ id });
3514
3616
  if (error) {
@@ -3529,9 +3631,9 @@ function useGradeLevelController() {
3529
3631
  async function getByEducationLevel(req, res, next) {
3530
3632
  const educationLevel = req.params.educationLevel;
3531
3633
  const school = req.query.school;
3532
- const validation = Joi6.object({
3533
- educationLevel: Joi6.string().required(),
3534
- school: Joi6.string().hex().optional().allow("", null)
3634
+ const validation = Joi7.object({
3635
+ educationLevel: Joi7.string().required(),
3636
+ school: Joi7.string().hex().optional().allow("", null)
3535
3637
  });
3536
3638
  const { error } = validation.validate({ educationLevel, school });
3537
3639
  if (error) {
@@ -3539,10 +3641,10 @@ function useGradeLevelController() {
3539
3641
  return;
3540
3642
  }
3541
3643
  try {
3542
- const gradeLevels = await _getByEducationLevel(educationLevel, school);
3644
+ const gradeLevels2 = await _getByEducationLevel(educationLevel, school);
3543
3645
  res.json({
3544
3646
  message: "Successfully retrieved grade levels by education level.",
3545
- data: { gradeLevels }
3647
+ data: { gradeLevels: gradeLevels2 }
3546
3648
  });
3547
3649
  return;
3548
3650
  } catch (error2) {
@@ -3561,14 +3663,14 @@ function useGradeLevelController() {
3561
3663
 
3562
3664
  // src/resources/region/region.model.ts
3563
3665
  import { BadRequestError as BadRequestError11 } from "@eeplatform/nodejs-utils";
3564
- import Joi7 from "joi";
3666
+ import Joi8 from "joi";
3565
3667
  import { ObjectId as ObjectId7 } from "mongodb";
3566
- var schemaRegion = Joi7.object({
3567
- _id: Joi7.string().hex().optional().allow(null, ""),
3568
- name: Joi7.string().min(1).max(100).required(),
3569
- createdAt: Joi7.string().isoDate().optional(),
3570
- updatedAt: Joi7.string().isoDate().optional(),
3571
- deletedAt: Joi7.string().isoDate().optional().allow(null, "")
3668
+ var schemaRegion = Joi8.object({
3669
+ _id: Joi8.string().hex().optional().allow(null, ""),
3670
+ name: Joi8.string().min(1).max(100).required(),
3671
+ createdAt: Joi8.string().isoDate().optional(),
3672
+ updatedAt: Joi8.string().isoDate().optional(),
3673
+ deletedAt: Joi8.string().isoDate().optional().allow(null, "")
3572
3674
  });
3573
3675
  function modelRegion(value) {
3574
3676
  const { error } = schemaRegion.validate(value);
@@ -3856,7 +3958,7 @@ function useRegionRepo() {
3856
3958
 
3857
3959
  // src/resources/region/region.controller.ts
3858
3960
  import { BadRequestError as BadRequestError13 } from "@eeplatform/nodejs-utils";
3859
- import Joi8 from "joi";
3961
+ import Joi9 from "joi";
3860
3962
  function useRegionController() {
3861
3963
  const {
3862
3964
  add: _add,
@@ -3886,11 +3988,11 @@ function useRegionController() {
3886
3988
  }
3887
3989
  async function getAll(req, res, next) {
3888
3990
  const query = req.query;
3889
- const validation = Joi8.object({
3890
- page: Joi8.number().min(1).optional().allow("", null),
3891
- limit: Joi8.number().min(1).optional().allow("", null),
3892
- search: Joi8.string().optional().allow("", null),
3893
- status: Joi8.string().optional().allow("", null)
3991
+ const validation = Joi9.object({
3992
+ page: Joi9.number().min(1).optional().allow("", null),
3993
+ limit: Joi9.number().min(1).optional().allow("", null),
3994
+ search: Joi9.string().optional().allow("", null),
3995
+ status: Joi9.string().optional().allow("", null)
3894
3996
  });
3895
3997
  const { error } = validation.validate(query);
3896
3998
  const page = typeof req.query.page === "string" ? Number(req.query.page) : 1;
@@ -3921,8 +4023,8 @@ function useRegionController() {
3921
4023
  }
3922
4024
  async function getById(req, res, next) {
3923
4025
  const id = req.params.id;
3924
- const validation = Joi8.object({
3925
- id: Joi8.string().hex().required()
4026
+ const validation = Joi9.object({
4027
+ id: Joi9.string().hex().required()
3926
4028
  });
3927
4029
  const { error } = validation.validate({ id });
3928
4030
  if (error) {
@@ -3942,8 +4044,8 @@ function useRegionController() {
3942
4044
  }
3943
4045
  async function getByName(req, res, next) {
3944
4046
  const name = req.params.name;
3945
- const validation = Joi8.object({
3946
- name: Joi8.string().required()
4047
+ const validation = Joi9.object({
4048
+ name: Joi9.string().required()
3947
4049
  });
3948
4050
  const { error } = validation.validate({ name });
3949
4051
  if (error) {
@@ -3964,10 +4066,10 @@ function useRegionController() {
3964
4066
  async function updateField(req, res, next) {
3965
4067
  const _id = req.params.id;
3966
4068
  const { field, value } = req.body;
3967
- const validation = Joi8.object({
3968
- _id: Joi8.string().hex().required(),
3969
- field: Joi8.string().valid("name", "director", "directorName").required(),
3970
- value: Joi8.string().required()
4069
+ const validation = Joi9.object({
4070
+ _id: Joi9.string().hex().required(),
4071
+ field: Joi9.string().valid("name", "director", "directorName").required(),
4072
+ value: Joi9.string().required()
3971
4073
  });
3972
4074
  const { error } = validation.validate({ _id, field, value });
3973
4075
  if (error) {
@@ -3984,8 +4086,8 @@ function useRegionController() {
3984
4086
  }
3985
4087
  async function deleteById(req, res, next) {
3986
4088
  const _id = req.params.id;
3987
- const validation = Joi8.object({
3988
- _id: Joi8.string().hex().required()
4089
+ const validation = Joi9.object({
4090
+ _id: Joi9.string().hex().required()
3989
4091
  });
3990
4092
  const { error } = validation.validate({ _id });
3991
4093
  if (error) {
@@ -4012,26 +4114,26 @@ function useRegionController() {
4012
4114
 
4013
4115
  // src/resources/division/division.model.ts
4014
4116
  import { BadRequestError as BadRequestError14 } from "@eeplatform/nodejs-utils";
4015
- import Joi9 from "joi";
4117
+ import Joi10 from "joi";
4016
4118
  import { ObjectId as ObjectId9 } from "mongodb";
4017
- var schemaDivision = Joi9.object({
4018
- _id: Joi9.string().hex().optional().allow(null, ""),
4019
- name: Joi9.string().min(1).max(100).required(),
4020
- region: Joi9.string().hex().required(),
4021
- regionName: Joi9.string().min(1).max(100).required(),
4022
- superintendent: Joi9.string().hex().optional().allow(null, ""),
4023
- superintendentName: Joi9.string().min(1).max(100).optional().allow(null, ""),
4024
- createdAt: Joi9.string().isoDate().optional(),
4025
- updatedAt: Joi9.string().isoDate().optional(),
4026
- deletedAt: Joi9.string().isoDate().optional().allow(null, "")
4119
+ var schemaDivision = Joi10.object({
4120
+ _id: Joi10.string().hex().optional().allow(null, ""),
4121
+ name: Joi10.string().min(1).max(100).required(),
4122
+ region: Joi10.string().hex().required(),
4123
+ regionName: Joi10.string().min(1).max(100).required(),
4124
+ superintendent: Joi10.string().hex().optional().allow(null, ""),
4125
+ superintendentName: Joi10.string().min(1).max(100).optional().allow(null, ""),
4126
+ createdAt: Joi10.string().isoDate().optional(),
4127
+ updatedAt: Joi10.string().isoDate().optional(),
4128
+ deletedAt: Joi10.string().isoDate().optional().allow(null, "")
4027
4129
  });
4028
- var schemaDivisionUpdate = Joi9.object({
4029
- _id: Joi9.string().hex().optional().allow(null, ""),
4030
- name: Joi9.string().min(1).max(100).required(),
4031
- region: Joi9.string().hex().required(),
4032
- regionName: Joi9.string().min(1).max(100).required(),
4033
- superintendent: Joi9.string().hex().optional().allow(null, ""),
4034
- superintendentName: Joi9.string().min(1).max(100).optional().allow(null, "")
4130
+ var schemaDivisionUpdate = Joi10.object({
4131
+ _id: Joi10.string().hex().optional().allow(null, ""),
4132
+ name: Joi10.string().min(1).max(100).required(),
4133
+ region: Joi10.string().hex().required(),
4134
+ regionName: Joi10.string().min(1).max(100).required(),
4135
+ superintendent: Joi10.string().hex().optional().allow(null, ""),
4136
+ superintendentName: Joi10.string().min(1).max(100).optional().allow(null, "")
4035
4137
  });
4036
4138
  function modelDivision(value) {
4037
4139
  const { error } = schemaDivision.validate(value);
@@ -4386,49 +4488,49 @@ import { useRoleRepo as useRoleRepo2 } from "@eeplatform/core";
4386
4488
 
4387
4489
  // src/resources/school/school.model.ts
4388
4490
  import { BadRequestError as BadRequestError16 } from "@eeplatform/nodejs-utils";
4389
- import Joi10 from "joi";
4491
+ import Joi11 from "joi";
4390
4492
  import { ObjectId as ObjectId11 } from "mongodb";
4391
- var schemaSchool = Joi10.object({
4392
- _id: Joi10.string().hex().optional().allow(null, ""),
4393
- id: Joi10.string().min(1).max(50).required(),
4394
- name: Joi10.string().min(1).max(100).required(),
4395
- region: Joi10.string().hex().required(),
4396
- regionName: Joi10.string().min(1).max(100).optional().allow(null, ""),
4397
- division: Joi10.string().hex().required(),
4398
- divisionName: Joi10.string().min(1).max(100).optional().allow(null, ""),
4399
- principal: Joi10.string().hex().optional().allow(null, ""),
4400
- principalName: Joi10.string().min(1).max(100).optional().allow(null, ""),
4401
- street: Joi10.string().max(200).optional().allow(null, ""),
4402
- barangay: Joi10.string().max(200).optional().allow(null, ""),
4403
- cityMunicipality: Joi10.string().max(100).optional().allow(null, ""),
4404
- province: Joi10.string().max(100).optional().allow(null, ""),
4405
- cityMunicipalityPSGC: Joi10.string().length(10).optional().allow(null, ""),
4406
- postalCode: Joi10.string().max(20).optional().allow(null, ""),
4407
- contactNumber: Joi10.string().max(20).optional().allow(null, ""),
4408
- email: Joi10.string().email().max(100).optional().allow(null, ""),
4409
- status: Joi10.string().optional().allow(null, ""),
4410
- createdBy: Joi10.string().optional().allow(null, ""),
4411
- createdAt: Joi10.string().isoDate().optional().allow(null, ""),
4412
- updatedAt: Joi10.string().isoDate().optional().allow(null, ""),
4413
- deletedAt: Joi10.string().isoDate().optional().allow(null, "")
4493
+ var schemaSchool = Joi11.object({
4494
+ _id: Joi11.string().hex().optional().allow(null, ""),
4495
+ id: Joi11.string().min(1).max(50).required(),
4496
+ name: Joi11.string().min(1).max(100).required(),
4497
+ region: Joi11.string().hex().required(),
4498
+ regionName: Joi11.string().min(1).max(100).optional().allow(null, ""),
4499
+ division: Joi11.string().hex().required(),
4500
+ divisionName: Joi11.string().min(1).max(100).optional().allow(null, ""),
4501
+ principal: Joi11.string().hex().optional().allow(null, ""),
4502
+ principalName: Joi11.string().min(1).max(100).optional().allow(null, ""),
4503
+ street: Joi11.string().max(200).optional().allow(null, ""),
4504
+ barangay: Joi11.string().max(200).optional().allow(null, ""),
4505
+ cityMunicipality: Joi11.string().max(100).optional().allow(null, ""),
4506
+ province: Joi11.string().max(100).optional().allow(null, ""),
4507
+ cityMunicipalityPSGC: Joi11.string().length(10).optional().allow(null, ""),
4508
+ postalCode: Joi11.string().max(20).optional().allow(null, ""),
4509
+ contactNumber: Joi11.string().max(20).optional().allow(null, ""),
4510
+ email: Joi11.string().email().max(100).optional().allow(null, ""),
4511
+ status: Joi11.string().optional().allow(null, ""),
4512
+ createdBy: Joi11.string().optional().allow(null, ""),
4513
+ createdAt: Joi11.string().isoDate().optional().allow(null, ""),
4514
+ updatedAt: Joi11.string().isoDate().optional().allow(null, ""),
4515
+ deletedAt: Joi11.string().isoDate().optional().allow(null, "")
4414
4516
  });
4415
- var schemaSchoolUpdate = Joi10.object({
4416
- id: Joi10.string().min(1).max(50).required(),
4417
- name: Joi10.string().min(1).max(100).required(),
4418
- region: Joi10.string().hex().required(),
4419
- regionName: Joi10.string().min(1).max(100).optional().allow(null, ""),
4420
- division: Joi10.string().hex().required(),
4421
- divisionName: Joi10.string().min(1).max(100).optional().allow(null, ""),
4422
- principal: Joi10.string().hex().optional().allow(null, ""),
4423
- principalName: Joi10.string().min(1).max(100).optional().allow(null, ""),
4424
- street: Joi10.string().max(200).optional().allow(null, ""),
4425
- barangay: Joi10.string().max(200).optional().allow(null, ""),
4426
- cityMunicipality: Joi10.string().max(100).optional().allow(null, ""),
4427
- province: Joi10.string().max(100).optional().allow(null, ""),
4428
- cityMunicipalityPSGC: Joi10.string().length(10).optional().allow(null, ""),
4429
- postalCode: Joi10.string().max(20).optional().allow(null, ""),
4430
- contactNumber: Joi10.string().max(20).optional().allow(null, ""),
4431
- email: Joi10.string().email().max(100).optional().allow(null, "")
4517
+ var schemaSchoolUpdate = Joi11.object({
4518
+ id: Joi11.string().min(1).max(50).required(),
4519
+ name: Joi11.string().min(1).max(100).required(),
4520
+ region: Joi11.string().hex().required(),
4521
+ regionName: Joi11.string().min(1).max(100).optional().allow(null, ""),
4522
+ division: Joi11.string().hex().required(),
4523
+ divisionName: Joi11.string().min(1).max(100).optional().allow(null, ""),
4524
+ principal: Joi11.string().hex().optional().allow(null, ""),
4525
+ principalName: Joi11.string().min(1).max(100).optional().allow(null, ""),
4526
+ street: Joi11.string().max(200).optional().allow(null, ""),
4527
+ barangay: Joi11.string().max(200).optional().allow(null, ""),
4528
+ cityMunicipality: Joi11.string().max(100).optional().allow(null, ""),
4529
+ province: Joi11.string().max(100).optional().allow(null, ""),
4530
+ cityMunicipalityPSGC: Joi11.string().length(10).optional().allow(null, ""),
4531
+ postalCode: Joi11.string().max(20).optional().allow(null, ""),
4532
+ contactNumber: Joi11.string().max(20).optional().allow(null, ""),
4533
+ email: Joi11.string().email().max(100).optional().allow(null, "")
4432
4534
  });
4433
4535
  function modelSchool(value) {
4434
4536
  const { error } = schemaSchool.validate(value);
@@ -4515,7 +4617,6 @@ function useSchoolRepo() {
4515
4617
  { key: { name: 1 } },
4516
4618
  { key: { createdAt: 1 } },
4517
4619
  { key: { name: "text" } },
4518
- { key: { cityMunicipalityPSGC: 1 }, unique: true, name: "unique_psgc" },
4519
4620
  { key: { id: 1, status: 1 }, unique: true, name: "unique_school_id" }
4520
4621
  ]);
4521
4622
  } catch (error) {
@@ -33298,14 +33399,20 @@ ${errors.slice(0, 5).join("\n")}${errors.length > 5 ? `
33298
33399
  session.startTransaction();
33299
33400
  const school = schools[i];
33300
33401
  try {
33301
- const provincePSGC = await getPSGCByName({
33302
- name: school.province ?? "",
33303
- type: "Prov"
33304
- });
33402
+ let provincePSGC = "";
33403
+ if (school.province) {
33404
+ const provinceData = await getPSGCByName({
33405
+ name: school.province,
33406
+ type: "Prov"
33407
+ });
33408
+ if (provinceData) {
33409
+ provincePSGC = provinceData.code ?? "";
33410
+ }
33411
+ }
33305
33412
  const cityMunPSGC = await getPSGCByName({
33306
33413
  name: school.cityMunicipality ?? "",
33307
33414
  type: "City",
33308
- prefix: provincePSGC ? provincePSGC.code.toString().slice(0, 5) : ""
33415
+ prefix: provincePSGC ? provincePSGC.toString().slice(0, 5) : ""
33309
33416
  });
33310
33417
  if (!cityMunPSGC) {
33311
33418
  throw new BadRequestError18(
@@ -33360,7 +33467,7 @@ ${errors.slice(0, 5).join("\n")}${errors.length > 5 ? `
33360
33467
 
33361
33468
  // src/resources/school/school.controller.ts
33362
33469
  import { BadRequestError as BadRequestError19 } from "@eeplatform/nodejs-utils";
33363
- import Joi11 from "joi";
33470
+ import Joi12 from "joi";
33364
33471
  function useSchoolController() {
33365
33472
  const {
33366
33473
  getAll: _getAll,
@@ -33393,16 +33500,16 @@ function useSchoolController() {
33393
33500
  }
33394
33501
  }
33395
33502
  async function getAll(req, res, next) {
33396
- const validation = Joi11.object({
33397
- page: Joi11.number().optional().allow(null, ""),
33398
- limit: Joi11.number().optional().allow(null, ""),
33399
- sort: Joi11.string().optional().allow(null, ""),
33400
- sortOrder: Joi11.string().optional().allow(null, ""),
33401
- status: Joi11.string().optional().allow(null, ""),
33402
- org: Joi11.string().hex().optional().allow(null, ""),
33403
- app: Joi11.string().optional().allow(null, ""),
33404
- search: Joi11.string().optional().allow(null, ""),
33405
- psgc: Joi11.string().optional().allow(null, "")
33503
+ const validation = Joi12.object({
33504
+ page: Joi12.number().optional().allow(null, ""),
33505
+ limit: Joi12.number().optional().allow(null, ""),
33506
+ sort: Joi12.string().optional().allow(null, ""),
33507
+ sortOrder: Joi12.string().optional().allow(null, ""),
33508
+ status: Joi12.string().optional().allow(null, ""),
33509
+ org: Joi12.string().hex().optional().allow(null, ""),
33510
+ app: Joi12.string().optional().allow(null, ""),
33511
+ search: Joi12.string().optional().allow(null, ""),
33512
+ psgc: Joi12.string().optional().allow(null, "")
33406
33513
  });
33407
33514
  const { error } = validation.validate(req.query);
33408
33515
  if (error) {
@@ -33440,7 +33547,7 @@ function useSchoolController() {
33440
33547
  }
33441
33548
  async function getByCreatedBy(req, res, next) {
33442
33549
  const createdBy = req.params.createdBy;
33443
- const validation = Joi11.string().hex().required();
33550
+ const validation = Joi12.string().hex().required();
33444
33551
  const { error } = validation.validate(createdBy);
33445
33552
  if (error) {
33446
33553
  next(new BadRequestError19(`Validation error: ${error.message}`));
@@ -33457,9 +33564,9 @@ function useSchoolController() {
33457
33564
  async function updateStatusById(req, res, next) {
33458
33565
  const schoolId = req.params.id;
33459
33566
  const status = req.params.status;
33460
- const validation = Joi11.object({
33461
- id: Joi11.string().hex().required(),
33462
- status: Joi11.string().valid("active", "deleted", "suspended").required()
33567
+ const validation = Joi12.object({
33568
+ id: Joi12.string().hex().required(),
33569
+ status: Joi12.string().valid("active", "deleted", "suspended").required()
33463
33570
  });
33464
33571
  const { error } = validation.validate({ id: schoolId, status });
33465
33572
  if (error) {
@@ -33492,8 +33599,8 @@ function useSchoolController() {
33492
33599
  }
33493
33600
  async function approveSchool(req, res, next) {
33494
33601
  const schoolId = req.params.id;
33495
- const validation = Joi11.object({
33496
- id: Joi11.string().hex().required()
33602
+ const validation = Joi12.object({
33603
+ id: Joi12.string().hex().required()
33497
33604
  });
33498
33605
  const { error } = validation.validate({ id: schoolId });
33499
33606
  if (error) {
@@ -33516,11 +33623,11 @@ function useSchoolController() {
33516
33623
  return;
33517
33624
  }
33518
33625
  const { region, regionName, division, divisionName } = req.body;
33519
- const validation = Joi11.object({
33520
- region: Joi11.string().hex().required(),
33521
- regionName: Joi11.string().min(1).required(),
33522
- division: Joi11.string().hex().required(),
33523
- divisionName: Joi11.string().min(1).required()
33626
+ const validation = Joi12.object({
33627
+ region: Joi12.string().hex().required(),
33628
+ regionName: Joi12.string().min(1).required(),
33629
+ division: Joi12.string().hex().required(),
33630
+ divisionName: Joi12.string().min(1).required()
33524
33631
  });
33525
33632
  const { error } = validation.validate({
33526
33633
  region,
@@ -33549,10 +33656,10 @@ function useSchoolController() {
33549
33656
  async function updateFieldById(req, res, next) {
33550
33657
  const _id = req.params.id;
33551
33658
  const { field, value } = req.body;
33552
- const validation = Joi11.object({
33553
- _id: Joi11.string().hex().required(),
33554
- field: Joi11.string().valid("name", "director", "directorName").required(),
33555
- value: Joi11.string().required()
33659
+ const validation = Joi12.object({
33660
+ _id: Joi12.string().hex().required(),
33661
+ field: Joi12.string().valid("name", "director", "directorName").required(),
33662
+ value: Joi12.string().required()
33556
33663
  });
33557
33664
  const { error } = validation.validate({ _id, field, value });
33558
33665
  if (error) {
@@ -33570,8 +33677,8 @@ function useSchoolController() {
33570
33677
  async function updateById(req, res, next) {
33571
33678
  const id = req.params.id;
33572
33679
  const payload = req.body;
33573
- const validation = Joi11.object({
33574
- id: Joi11.string().hex().required()
33680
+ const validation = Joi12.object({
33681
+ id: Joi12.string().hex().required()
33575
33682
  });
33576
33683
  const { error: idError } = validation.validate({ id });
33577
33684
  if (idError) {
@@ -33593,8 +33700,8 @@ function useSchoolController() {
33593
33700
  }
33594
33701
  async function deleteById(req, res, next) {
33595
33702
  const _id = req.params.id;
33596
- const validation = Joi11.object({
33597
- _id: Joi11.string().hex().required()
33703
+ const validation = Joi12.object({
33704
+ _id: Joi12.string().hex().required()
33598
33705
  });
33599
33706
  const { error } = validation.validate({ _id });
33600
33707
  if (error) {
@@ -33689,7 +33796,7 @@ function useDivisionService() {
33689
33796
 
33690
33797
  // src/resources/division/division.controller.ts
33691
33798
  import { BadRequestError as BadRequestError20 } from "@eeplatform/nodejs-utils";
33692
- import Joi12 from "joi";
33799
+ import Joi13 from "joi";
33693
33800
  function useDivisionController() {
33694
33801
  const { add: _add, updateById: _updateById } = useDivisionService();
33695
33802
  const {
@@ -33719,12 +33826,12 @@ function useDivisionController() {
33719
33826
  }
33720
33827
  async function getAll(req, res, next) {
33721
33828
  const query = req.query;
33722
- const validation = Joi12.object({
33723
- page: Joi12.number().min(1).optional().allow("", null),
33724
- limit: Joi12.number().min(1).optional().allow("", null),
33725
- search: Joi12.string().optional().allow("", null),
33726
- status: Joi12.string().optional().allow("", null),
33727
- region: Joi12.string().hex().optional().allow("", null)
33829
+ const validation = Joi13.object({
33830
+ page: Joi13.number().min(1).optional().allow("", null),
33831
+ limit: Joi13.number().min(1).optional().allow("", null),
33832
+ search: Joi13.string().optional().allow("", null),
33833
+ status: Joi13.string().optional().allow("", null),
33834
+ region: Joi13.string().hex().optional().allow("", null)
33728
33835
  });
33729
33836
  const { error } = validation.validate(query);
33730
33837
  const page = typeof req.query.page === "string" ? Number(req.query.page) : 1;
@@ -33756,8 +33863,8 @@ function useDivisionController() {
33756
33863
  }
33757
33864
  async function getById(req, res, next) {
33758
33865
  const id = req.params.id;
33759
- const validation = Joi12.object({
33760
- id: Joi12.string().hex().required()
33866
+ const validation = Joi13.object({
33867
+ id: Joi13.string().hex().required()
33761
33868
  });
33762
33869
  const { error } = validation.validate({ id });
33763
33870
  if (error) {
@@ -33777,8 +33884,8 @@ function useDivisionController() {
33777
33884
  }
33778
33885
  async function getByName(req, res, next) {
33779
33886
  const name = req.params.name;
33780
- const validation = Joi12.object({
33781
- name: Joi12.string().required()
33887
+ const validation = Joi13.object({
33888
+ name: Joi13.string().required()
33782
33889
  });
33783
33890
  const { error } = validation.validate({ name });
33784
33891
  if (error) {
@@ -33799,10 +33906,10 @@ function useDivisionController() {
33799
33906
  async function updateField(req, res, next) {
33800
33907
  const _id = req.params.id;
33801
33908
  const { field, value } = req.body;
33802
- const validation = Joi12.object({
33803
- _id: Joi12.string().hex().required(),
33804
- field: Joi12.string().valid("name", "director", "directorName").required(),
33805
- value: Joi12.string().required()
33909
+ const validation = Joi13.object({
33910
+ _id: Joi13.string().hex().required(),
33911
+ field: Joi13.string().valid("name", "director", "directorName").required(),
33912
+ value: Joi13.string().required()
33806
33913
  });
33807
33914
  const { error } = validation.validate({ _id, field, value });
33808
33915
  if (error) {
@@ -33835,8 +33942,8 @@ function useDivisionController() {
33835
33942
  }
33836
33943
  async function deleteById(req, res, next) {
33837
33944
  const _id = req.params.id;
33838
- const validation = Joi12.object({
33839
- _id: Joi12.string().hex().required()
33945
+ const validation = Joi13.object({
33946
+ _id: Joi13.string().hex().required()
33840
33947
  });
33841
33948
  const { error } = validation.validate({ _id });
33842
33949
  if (error) {
@@ -33864,48 +33971,48 @@ function useDivisionController() {
33864
33971
 
33865
33972
  // src/resources/asset/asset.model.ts
33866
33973
  import { BadRequestError as BadRequestError21 } from "@eeplatform/nodejs-utils";
33867
- import Joi13 from "joi";
33974
+ import Joi14 from "joi";
33868
33975
  import { ObjectId as ObjectId13 } from "mongodb";
33869
- var schemaAsset = Joi13.object({
33870
- _id: Joi13.string().hex().optional(),
33871
- school: Joi13.string().hex().required(),
33872
- asset_type: Joi13.string().required().allow("supply", "furniture-equipment", "fixed-asset"),
33873
- name: Joi13.string().required(),
33874
- category: Joi13.string().optional().allow("", null),
33875
- type: Joi13.string().optional().allow("", null),
33876
- brand: Joi13.string().optional().allow("", null),
33877
- unit: Joi13.string().required(),
33878
- status: Joi13.string().optional().allow("", null),
33879
- createdAt: Joi13.date().optional().allow("", null),
33880
- updatedAt: Joi13.date().optional().allow("", null),
33881
- deletedAt: Joi13.date().optional().allow("", null),
33882
- metadata: Joi13.object({
33883
- title: Joi13.string().optional().allow("", null),
33884
- isbn: Joi13.string().optional().allow("", null),
33885
- author: Joi13.string().optional().allow("", null),
33886
- edition: Joi13.string().optional().allow("", null),
33887
- subject: Joi13.string().optional().allow("", null),
33888
- grade_level: Joi13.number().integer().min(0).optional().allow("", null),
33889
- publisher: Joi13.string().optional().allow("", null),
33890
- language: Joi13.string().optional().allow("", null)
33976
+ var schemaAsset = Joi14.object({
33977
+ _id: Joi14.string().hex().optional(),
33978
+ school: Joi14.string().hex().required(),
33979
+ asset_type: Joi14.string().required().allow("supply", "furniture-equipment", "fixed-asset"),
33980
+ name: Joi14.string().required(),
33981
+ category: Joi14.string().optional().allow("", null),
33982
+ type: Joi14.string().optional().allow("", null),
33983
+ brand: Joi14.string().optional().allow("", null),
33984
+ unit: Joi14.string().required(),
33985
+ status: Joi14.string().optional().allow("", null),
33986
+ createdAt: Joi14.date().optional().allow("", null),
33987
+ updatedAt: Joi14.date().optional().allow("", null),
33988
+ deletedAt: Joi14.date().optional().allow("", null),
33989
+ metadata: Joi14.object({
33990
+ title: Joi14.string().optional().allow("", null),
33991
+ isbn: Joi14.string().optional().allow("", null),
33992
+ author: Joi14.string().optional().allow("", null),
33993
+ edition: Joi14.string().optional().allow("", null),
33994
+ subject: Joi14.string().optional().allow("", null),
33995
+ grade_level: Joi14.number().integer().min(0).optional().allow("", null),
33996
+ publisher: Joi14.string().optional().allow("", null),
33997
+ language: Joi14.string().optional().allow("", null)
33891
33998
  }).optional().allow(null)
33892
33999
  });
33893
- var schemaAssetUpdateOption = Joi13.object({
33894
- name: Joi13.string().optional().allow("", null),
33895
- category: Joi13.string().optional().allow("", null),
33896
- type: Joi13.string().optional().allow("", null),
33897
- brand: Joi13.string().optional().allow("", null),
33898
- qty: Joi13.number().integer().min(0).optional().allow("", null),
33899
- unit: Joi13.string().optional().allow("", null),
33900
- metadata: Joi13.object({
33901
- title: Joi13.string().optional().allow("", null),
33902
- isbn: Joi13.string().optional().allow("", null),
33903
- author: Joi13.string().optional().allow("", null),
33904
- edition: Joi13.string().optional().allow("", null),
33905
- subject: Joi13.string().optional().allow("", null),
33906
- grade_level: Joi13.number().integer().min(0).optional().allow("", null),
33907
- publisher: Joi13.string().optional().allow("", null),
33908
- language: Joi13.string().optional().allow("", null)
34000
+ var schemaAssetUpdateOption = Joi14.object({
34001
+ name: Joi14.string().optional().allow("", null),
34002
+ category: Joi14.string().optional().allow("", null),
34003
+ type: Joi14.string().optional().allow("", null),
34004
+ brand: Joi14.string().optional().allow("", null),
34005
+ qty: Joi14.number().integer().min(0).optional().allow("", null),
34006
+ unit: Joi14.string().optional().allow("", null),
34007
+ metadata: Joi14.object({
34008
+ title: Joi14.string().optional().allow("", null),
34009
+ isbn: Joi14.string().optional().allow("", null),
34010
+ author: Joi14.string().optional().allow("", null),
34011
+ edition: Joi14.string().optional().allow("", null),
34012
+ subject: Joi14.string().optional().allow("", null),
34013
+ grade_level: Joi14.number().integer().min(0).optional().allow("", null),
34014
+ publisher: Joi14.string().optional().allow("", null),
34015
+ language: Joi14.string().optional().allow("", null)
33909
34016
  }).optional().allow(null)
33910
34017
  });
33911
34018
  function MAsset(value) {
@@ -34344,7 +34451,7 @@ function useAssetRepo() {
34344
34451
 
34345
34452
  // src/resources/asset/asset.controller.ts
34346
34453
  import { BadRequestError as BadRequestError23 } from "@eeplatform/nodejs-utils";
34347
- import Joi14 from "joi";
34454
+ import Joi15 from "joi";
34348
34455
  function useAssetController() {
34349
34456
  const {
34350
34457
  add: _add,
@@ -34372,13 +34479,13 @@ function useAssetController() {
34372
34479
  }
34373
34480
  async function getAll(req, res, next) {
34374
34481
  const query = req.query;
34375
- const validation = Joi14.object({
34376
- page: Joi14.number().min(1).optional().allow("", null),
34377
- limit: Joi14.number().min(1).optional().allow("", null),
34378
- search: Joi14.string().optional().allow("", null),
34379
- status: Joi14.string().optional().allow("", null),
34380
- school: Joi14.string().hex().optional().allow("", null),
34381
- asset_type: Joi14.string().required().allow("supply", "furniture-equipment", "fixed-asset")
34482
+ const validation = Joi15.object({
34483
+ page: Joi15.number().min(1).optional().allow("", null),
34484
+ limit: Joi15.number().min(1).optional().allow("", null),
34485
+ search: Joi15.string().optional().allow("", null),
34486
+ status: Joi15.string().optional().allow("", null),
34487
+ school: Joi15.string().hex().optional().allow("", null),
34488
+ asset_type: Joi15.string().required().allow("supply", "furniture-equipment", "fixed-asset")
34382
34489
  });
34383
34490
  const { error } = validation.validate(query);
34384
34491
  const page = typeof req.query.page === "string" ? Number(req.query.page) : 1;
@@ -34418,7 +34525,7 @@ function useAssetController() {
34418
34525
  }
34419
34526
  async function deleteById(req, res, next) {
34420
34527
  const id = req.params.id;
34421
- const validation = Joi14.string().hex().required();
34528
+ const validation = Joi15.string().hex().required();
34422
34529
  const { error } = validation.validate(id);
34423
34530
  if (error) {
34424
34531
  next(new BadRequestError23(error.message));
@@ -34433,7 +34540,7 @@ function useAssetController() {
34433
34540
  }
34434
34541
  async function getById(req, res, next) {
34435
34542
  const id = req.params.id;
34436
- const validation = Joi14.string().hex().required();
34543
+ const validation = Joi15.string().hex().required();
34437
34544
  const { error } = validation.validate(id);
34438
34545
  if (error) {
34439
34546
  next(new BadRequestError23(error.message));
@@ -34464,7 +34571,7 @@ function useAssetController() {
34464
34571
  async function getCategories(req, res, next) {
34465
34572
  const school = req.params.school;
34466
34573
  const asset_type = req.params.asset_type;
34467
- const validation = Joi14.string().hex().required();
34574
+ const validation = Joi15.string().hex().required();
34468
34575
  const { error } = validation.validate(school);
34469
34576
  if (error) {
34470
34577
  next(new BadRequestError23(error.message));
@@ -34480,7 +34587,7 @@ function useAssetController() {
34480
34587
  async function getTypes(req, res, next) {
34481
34588
  const school = req.params.school;
34482
34589
  const asset_type = req.params.asset_type;
34483
- const validation = Joi14.string().hex().required();
34590
+ const validation = Joi15.string().hex().required();
34484
34591
  const { error } = validation.validate(school);
34485
34592
  if (error) {
34486
34593
  next(new BadRequestError23(error.message));
@@ -34495,7 +34602,7 @@ function useAssetController() {
34495
34602
  }
34496
34603
  async function getUnitsBySchool(req, res, next) {
34497
34604
  const school = req.params.school;
34498
- const validation = Joi14.string().hex().required();
34605
+ const validation = Joi15.string().hex().required();
34499
34606
  const { error } = validation.validate(school);
34500
34607
  if (error) {
34501
34608
  next(new BadRequestError23(error.message));
@@ -34522,26 +34629,26 @@ function useAssetController() {
34522
34629
 
34523
34630
  // src/resources/stock-card/stock-card.model.ts
34524
34631
  import { BadRequestError as BadRequestError24 } from "@eeplatform/nodejs-utils";
34525
- import Joi15 from "joi";
34632
+ import Joi16 from "joi";
34526
34633
  import { ObjectId as ObjectId15 } from "mongodb";
34527
- var schemaStockCard = Joi15.object({
34528
- _id: Joi15.string().hex().optional().allow("", null),
34529
- school: Joi15.string().hex().required(),
34530
- item: Joi15.string().hex().required(),
34531
- balance: Joi15.number().optional().allow(null, 0),
34532
- qty: Joi15.number().required(),
34533
- unitCost: Joi15.number().optional().allow(null, 0),
34534
- totalCost: Joi15.number().optional().allow(null, 0),
34535
- status: Joi15.string().optional().allow(null, ""),
34536
- condition: Joi15.string().required(),
34537
- supplier: Joi15.string().optional().allow("", null),
34538
- location: Joi15.string().optional().allow("", null),
34539
- locationName: Joi15.string().optional().allow("", null),
34540
- reason: Joi15.string().optional().allow("", null),
34541
- remarks: Joi15.string().optional().allow("", null),
34542
- createdAt: Joi15.date().optional().allow("", null),
34543
- updatedAt: Joi15.date().optional().allow("", null),
34544
- deletedAt: Joi15.date().optional().allow("", null)
34634
+ var schemaStockCard = Joi16.object({
34635
+ _id: Joi16.string().hex().optional().allow("", null),
34636
+ school: Joi16.string().hex().required(),
34637
+ item: Joi16.string().hex().required(),
34638
+ balance: Joi16.number().optional().allow(null, 0),
34639
+ qty: Joi16.number().required(),
34640
+ unitCost: Joi16.number().optional().allow(null, 0),
34641
+ totalCost: Joi16.number().optional().allow(null, 0),
34642
+ status: Joi16.string().optional().allow(null, ""),
34643
+ condition: Joi16.string().required(),
34644
+ supplier: Joi16.string().optional().allow("", null),
34645
+ location: Joi16.string().optional().allow("", null),
34646
+ locationName: Joi16.string().optional().allow("", null),
34647
+ reason: Joi16.string().optional().allow("", null),
34648
+ remarks: Joi16.string().optional().allow("", null),
34649
+ createdAt: Joi16.date().optional().allow("", null),
34650
+ updatedAt: Joi16.date().optional().allow("", null),
34651
+ deletedAt: Joi16.date().optional().allow("", null)
34545
34652
  });
34546
34653
  function MStockCard(value) {
34547
34654
  const { error } = schemaStockCard.validate(value);
@@ -34840,7 +34947,7 @@ function useStockCardService() {
34840
34947
 
34841
34948
  // src/resources/stock-card/stock-card.controller.ts
34842
34949
  import { BadRequestError as BadRequestError27 } from "@eeplatform/nodejs-utils";
34843
- import Joi16 from "joi";
34950
+ import Joi17 from "joi";
34844
34951
  function useStockCardController() {
34845
34952
  const {
34846
34953
  getAll: _getAll,
@@ -34864,11 +34971,11 @@ function useStockCardController() {
34864
34971
  }
34865
34972
  async function getAll(req, res, next) {
34866
34973
  const query = req.query;
34867
- const validation = Joi16.object({
34868
- page: Joi16.number().min(1).optional().allow("", null),
34869
- limit: Joi16.number().min(1).optional().allow("", null),
34870
- school: Joi16.string().hex().optional().allow("", null),
34871
- id: Joi16.string().hex().required()
34974
+ const validation = Joi17.object({
34975
+ page: Joi17.number().min(1).optional().allow("", null),
34976
+ limit: Joi17.number().min(1).optional().allow("", null),
34977
+ school: Joi17.string().hex().optional().allow("", null),
34978
+ id: Joi17.string().hex().required()
34872
34979
  });
34873
34980
  const { error } = validation.validate(query);
34874
34981
  const page = typeof req.query.page === "string" ? Number(req.query.page) : 1;
@@ -34904,7 +35011,7 @@ function useStockCardController() {
34904
35011
  }
34905
35012
  async function getById(req, res, next) {
34906
35013
  const id = req.params.id;
34907
- const validation = Joi16.string().hex().required();
35014
+ const validation = Joi17.string().hex().required();
34908
35015
  const { error } = validation.validate(id);
34909
35016
  if (error) {
34910
35017
  next(new BadRequestError27(error.message));
@@ -34919,7 +35026,7 @@ function useStockCardController() {
34919
35026
  }
34920
35027
  async function getSuppliers(req, res, next) {
34921
35028
  const school = req.params.school;
34922
- const validation = Joi16.string().hex().required();
35029
+ const validation = Joi17.string().hex().required();
34923
35030
  const { error } = validation.validate(school);
34924
35031
  if (error) {
34925
35032
  next(new BadRequestError27(error.message));
@@ -34942,30 +35049,30 @@ function useStockCardController() {
34942
35049
 
34943
35050
  // src/resources/plantilla/plantilla.model.ts
34944
35051
  import { BadRequestError as BadRequestError28 } from "@eeplatform/nodejs-utils";
34945
- import Joi17 from "joi";
35052
+ import Joi18 from "joi";
34946
35053
  import { ObjectId as ObjectId17 } from "mongodb";
34947
- var schemaPlantilla = Joi17.object({
34948
- _id: Joi17.string().hex().optional().allow(null, ""),
34949
- org: Joi17.string().hex().required(),
34950
- orgUnitCode: Joi17.string().optional().allow(null, ""),
34951
- employmentType: Joi17.string().optional().allow(null, ""),
34952
- personnelType: Joi17.string().required(),
34953
- itemNumber: Joi17.string().required(),
34954
- positionTitle: Joi17.string().required(),
34955
- positionCategory: Joi17.string().required(),
34956
- region: Joi17.string().hex().optional().allow(null, ""),
34957
- regionName: Joi17.string().optional().allow(null, ""),
34958
- division: Joi17.string().hex().optional().allow(null, ""),
34959
- divisionName: Joi17.string().optional().allow(null, ""),
34960
- salaryGrade: Joi17.number().required(),
34961
- employeeName: Joi17.string().optional().allow(null, ""),
34962
- annualSalary: Joi17.number().optional().allow(null, 0),
34963
- monthlySalary: Joi17.number().optional().allow(null, 0),
34964
- status: Joi17.string().required(),
34965
- employee: Joi17.string().hex().optional().allow(null, ""),
34966
- createdAt: Joi17.date().iso().optional().allow(null, ""),
34967
- updatedAt: Joi17.date().iso().optional().allow(null, ""),
34968
- deletedAt: Joi17.date().iso().optional().allow(null, "")
35054
+ var schemaPlantilla = Joi18.object({
35055
+ _id: Joi18.string().hex().optional().allow(null, ""),
35056
+ org: Joi18.string().hex().required(),
35057
+ orgUnitCode: Joi18.string().optional().allow(null, ""),
35058
+ employmentType: Joi18.string().optional().allow(null, ""),
35059
+ personnelType: Joi18.string().required(),
35060
+ itemNumber: Joi18.string().required(),
35061
+ positionTitle: Joi18.string().required(),
35062
+ positionCategory: Joi18.string().required(),
35063
+ region: Joi18.string().hex().optional().allow(null, ""),
35064
+ regionName: Joi18.string().optional().allow(null, ""),
35065
+ division: Joi18.string().hex().optional().allow(null, ""),
35066
+ divisionName: Joi18.string().optional().allow(null, ""),
35067
+ salaryGrade: Joi18.number().required(),
35068
+ employeeName: Joi18.string().optional().allow(null, ""),
35069
+ annualSalary: Joi18.number().optional().allow(null, 0),
35070
+ monthlySalary: Joi18.number().optional().allow(null, 0),
35071
+ status: Joi18.string().required(),
35072
+ employee: Joi18.string().hex().optional().allow(null, ""),
35073
+ createdAt: Joi18.date().iso().optional().allow(null, ""),
35074
+ updatedAt: Joi18.date().iso().optional().allow(null, ""),
35075
+ deletedAt: Joi18.date().iso().optional().allow(null, "")
34969
35076
  });
34970
35077
  function MPlantilla(data) {
34971
35078
  const { error } = schemaPlantilla.validate(data);
@@ -35456,7 +35563,7 @@ ${errors.slice(0, 10).join("\n")}${errors.length > 10 ? `
35456
35563
 
35457
35564
  // src/resources/plantilla/plantilla.controller.ts
35458
35565
  import { BadRequestError as BadRequestError31 } from "@eeplatform/nodejs-utils";
35459
- import Joi18 from "joi";
35566
+ import Joi19 from "joi";
35460
35567
  function usePlantillaController() {
35461
35568
  const {
35462
35569
  add: _addPlantilla,
@@ -35468,11 +35575,11 @@ function usePlantillaController() {
35468
35575
  const { addBulk: _addBulk } = usePlantillaService();
35469
35576
  async function createPlantilla(req, res, next) {
35470
35577
  const value = req.body;
35471
- const validation = Joi18.object({
35472
- itemNumber: Joi18.string().required(),
35473
- positionTitle: Joi18.string().required(),
35474
- positionCategory: Joi18.string().required(),
35475
- status: Joi18.string().required()
35578
+ const validation = Joi19.object({
35579
+ itemNumber: Joi19.string().required(),
35580
+ positionTitle: Joi19.string().required(),
35581
+ positionCategory: Joi19.string().required(),
35582
+ status: Joi19.string().required()
35476
35583
  });
35477
35584
  const { error } = validation.validate(value);
35478
35585
  if (error) {
@@ -35502,11 +35609,11 @@ function usePlantillaController() {
35502
35609
  next(new BadRequestError31("Invalid limit number."));
35503
35610
  return;
35504
35611
  }
35505
- const validation = Joi18.object({
35506
- page: Joi18.number().min(1).optional().allow("", null),
35507
- limit: Joi18.number().min(1).optional().allow("", null),
35508
- search: Joi18.string().optional().allow("", null),
35509
- org: Joi18.string().optional().allow("", null)
35612
+ const validation = Joi19.object({
35613
+ page: Joi19.number().min(1).optional().allow("", null),
35614
+ limit: Joi19.number().min(1).optional().allow("", null),
35615
+ search: Joi19.string().optional().allow("", null),
35616
+ org: Joi19.string().optional().allow("", null)
35510
35617
  });
35511
35618
  const { error } = validation.validate({ page, limit, search, org });
35512
35619
  if (error) {
@@ -35528,8 +35635,8 @@ function usePlantillaController() {
35528
35635
  }
35529
35636
  async function getPlantillaById(req, res, next) {
35530
35637
  const id = req.params.id;
35531
- const validation = Joi18.object({
35532
- id: Joi18.string().hex().required()
35638
+ const validation = Joi19.object({
35639
+ id: Joi19.string().hex().required()
35533
35640
  });
35534
35641
  const { error } = validation.validate({ id });
35535
35642
  if (error) {
@@ -35551,12 +35658,12 @@ function usePlantillaController() {
35551
35658
  async function updatePlantilla(req, res, next) {
35552
35659
  const id = req.params.id;
35553
35660
  const value = req.body;
35554
- const validation = Joi18.object({
35555
- id: Joi18.string().hex().required(),
35556
- employee: Joi18.string().hex().optional().allow(null, ""),
35557
- status: Joi18.string().optional(),
35558
- positionTitle: Joi18.string().optional(),
35559
- positionCategory: Joi18.string().optional()
35661
+ const validation = Joi19.object({
35662
+ id: Joi19.string().hex().required(),
35663
+ employee: Joi19.string().hex().optional().allow(null, ""),
35664
+ status: Joi19.string().optional(),
35665
+ positionTitle: Joi19.string().optional(),
35666
+ positionCategory: Joi19.string().optional()
35560
35667
  });
35561
35668
  const { error } = validation.validate({ id, ...value });
35562
35669
  if (error) {
@@ -35577,8 +35684,8 @@ function usePlantillaController() {
35577
35684
  }
35578
35685
  async function deletePlantilla(req, res, next) {
35579
35686
  const id = req.params.id;
35580
- const validation = Joi18.object({
35581
- id: Joi18.string().hex().required()
35687
+ const validation = Joi19.object({
35688
+ id: Joi19.string().hex().required()
35582
35689
  });
35583
35690
  const { error } = validation.validate({ id });
35584
35691
  if (error) {
@@ -35603,9 +35710,9 @@ function usePlantillaController() {
35603
35710
  return;
35604
35711
  }
35605
35712
  const { region, division } = req.body;
35606
- const validation = Joi18.object({
35607
- region: Joi18.string().hex().optional(),
35608
- division: Joi18.string().hex().optional()
35713
+ const validation = Joi19.object({
35714
+ region: Joi19.string().hex().optional(),
35715
+ division: Joi19.string().hex().optional()
35609
35716
  });
35610
35717
  const { error } = validation.validate({ region, division });
35611
35718
  if (error) {