@oaknational/oak-curriculum-schema-v2 0.0.17-alpha → 0.0.19-alpha

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.
Files changed (39) hide show
  1. package/README.md +29 -0
  2. package/cjs/index.cjs +72 -27
  3. package/cjs/index.cjs.map +1 -1
  4. package/esm/index.js +69 -24
  5. package/esm/index.js.map +1 -1
  6. package/package.json +1 -1
  7. package/src/enums/acquisition-basis.ts +6 -0
  8. package/src/enums/clip-section.ts +6 -0
  9. package/src/enums/cohort.ts +6 -0
  10. package/src/enums/contract-log-event-type.ts +8 -0
  11. package/src/enums/contract-territory.ts +6 -0
  12. package/src/enums/document-type.ts +6 -0
  13. package/src/enums/index.ts +28 -0
  14. package/src/enums/lesson-component-operation-status.ts +11 -0
  15. package/src/enums/lesson-component-status-retirement.ts +11 -0
  16. package/src/enums/lesson-component-type.ts +6 -0
  17. package/src/enums/lesson-status.ts +6 -0
  18. package/src/enums/licence.ts +6 -0
  19. package/src/enums/media-kind.ts +6 -0
  20. package/src/enums/media-provenance.ts +6 -0
  21. package/src/enums/media-status-retirement.ts +8 -0
  22. package/src/enums/media-status.ts +6 -0
  23. package/src/enums/media-type.ts +6 -0
  24. package/src/enums/operation.ts +6 -0
  25. package/src/enums/permission-status.ts +6 -0
  26. package/src/enums/question-type.ts +6 -0
  27. package/src/enums/quiz-role.ts +6 -0
  28. package/src/enums/redirect-entity-source.ts +8 -0
  29. package/src/enums/redirect-type.ts +6 -0
  30. package/src/enums/release-type.ts +6 -0
  31. package/src/enums/restriction-level.ts +6 -0
  32. package/src/enums/restrictions-type.ts +6 -0
  33. package/src/enums/state.ts +6 -0
  34. package/src/enums/tag-category.ts +6 -0
  35. package/src/enums/usage-restrictions.ts +6 -0
  36. package/src/index.ts +3 -20
  37. package/src/mutation-api/index.ts +2 -0
  38. package/src/rendered-schema/index.ts +20 -0
  39. package/types.d.ts +574 -299
package/README.md CHANGED
@@ -39,6 +39,35 @@ service that uses them (for example `mutation-api`).
39
39
  - Types are PascalCase with a `Type` suffix, or `CamelType` for the
40
40
  camelCase-key type.
41
41
 
42
+ ## Database enums
43
+
44
+ Every database enum is exported as a Zod schema, values array and inferred type.
45
+ Values come directly from the Drizzle enum, preserving its labels and order.
46
+
47
+ ```ts
48
+ import {
49
+ stateSchema,
50
+ stateValues,
51
+ type StateType,
52
+ } from "@oaknational/oak-curriculum-schema-v2";
53
+
54
+ const state: StateType = stateSchema.parse("draft");
55
+ // stateValues contains all permitted database states.
56
+ ```
57
+
58
+ Names follow the conventions `<thing>Schema`, `<thing>Values` and
59
+ `<Thing>Type`.
60
+
61
+ ## Source organisation
62
+
63
+ - `src/rendered-schema/`: view schemas and their tests.
64
+ - `src/enums/`: one database enum per file.
65
+ - `src/mutation-api/`: shared Mutation API contracts; currently an empty barrel.
66
+
67
+ Folder barrels feed the package entry point. Consumers import from the package
68
+ root. Service-local Mutation API contracts and validation utilities stay in the
69
+ service package.
70
+
42
71
  ## Row types
43
72
 
44
73
  The schema declarations in `types.d.ts` are built by `drizzle-zod` and are