@happyvertical/smrt-human-resources 0.53.6 → 0.54.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/index.js +1 -1
- package/dist/manifest.json +1 -1
- package/dist/smrt-knowledge.json +3 -3
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { TenantScoped, getTenantId, tenantId, withTenant } from "@happyvertical/
|
|
|
5
5
|
import { createLogger } from "@happyvertical/logger";
|
|
6
6
|
import { NestedTransactionError } from "@happyvertical/sql";
|
|
7
7
|
//#region src/__smrt-register__.ts
|
|
8
|
-
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-human-resources\",\"packageVersion\":\"0.53.6\",\"objects\":{\"@happyvertical/smrt-human-resources:Employment\":{\"name\":\"employment\",\"className\":\"Employment\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:Employment\",\"collection\":\"employments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"profileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"userId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-users:User\",\"_meta\":{\"nullable\":true}},\"employerProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"nullable\":true,\"onDelete\":\"RESTRICT\"}},\"employeeNumber\":{\"type\":\"text\",\"required\":false},\"workerType\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"position\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"status\":{\"type\":\"text\",\"required\":false,\"_meta\":{}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"employments\",\"sensitive\":true,\"conflictColumns\":[\"tenant_id\",\"employee_number\"],\"indexes\":[{\"name\":\"employments_tenant_profile_uq\",\"columns\":[\"tenantId\",\"profileId\"],\"unique\":true},{\"name\":\"employments_tenant_user_idx\",\"columns\":[\"tenantId\",\"userId\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"Employment\",\"collectionExportName\":\"EmploymentCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"employments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"profile_id\\\" UUID,\\n \\\"user_id\\\" UUID,\\n \\\"employer_profile_id\\\" UUID,\\n \\\"employee_number\\\" TEXT,\\n \\\"worker_type\\\" TEXT,\\n \\\"position\\\" TEXT,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"user_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employer_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employee_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"worker_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"position\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employments_tenant_id_employee_number_idx\",\"columns\":[\"tenant_id\",\"employee_number\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"employments_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"employments_tenant_profile_uq\",\"columns\":[\"tenant_id\",\"profile_id\"],\"unique\":true},{\"name\":\"employments_tenant_user_idx\",\"columns\":[\"tenant_id\",\"user_id\"]},{\"name\":\"employments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employments_profile_id_idx\",\"columns\":[\"profile_id\"]},{\"name\":\"employments_user_id_idx\",\"columns\":[\"user_id\"]},{\"name\":\"employments_employer_profile_id_idx\",\"columns\":[\"employer_profile_id\"]}],\"version\":\"ff7ef7a8\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentTerm\":{\"name\":\"employmentterm\",\"className\":\"EmploymentTerm\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentTerm\",\"collection\":\"employmentterms\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"employmentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Employment\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"startedOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"endedOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"endReason\":{\"type\":\"text\",\"required\":false}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"employment_terms\",\"sensitive\":true,\"indexes\":[{\"name\":\"employment_terms_employment_idx\",\"columns\":[\"tenantId\",\"employmentId\",\"startedOn\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"EmploymentTerm\",\"collectionExportName\":\"EmploymentTermCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"employment_terms\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employment_terms\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"employment_id\\\" UUID,\\n \\\"started_on\\\" TEXT,\\n \\\"ended_on\\\" TEXT,\\n \\\"end_reason\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"started_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"ended_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"end_reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employment_terms_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"employment_terms_employment_idx\",\"columns\":[\"tenant_id\",\"employment_id\",\"started_on\"]},{\"name\":\"employment_terms_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employment_terms_employment_id_idx\",\"columns\":[\"employment_id\"]}],\"version\":\"165d209b\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentChange\":{\"name\":\"employmentchange\",\"className\":\"EmploymentChange\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentChange\",\"collection\":\"employmentchanges\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"employmentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Employment\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"kind\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"effectiveOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"fromValue\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"toValue\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"note\":{\"type\":\"text\",\"required\":false},\"actorProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"onDelete\":\"RESTRICT\"}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"employment_changes\",\"sensitive\":true,\"indexes\":[{\"name\":\"employment_changes_employment_idx\",\"columns\":[\"tenantId\",\"employmentId\",\"effectiveOn\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"EmploymentChange\",\"collectionExportName\":\"EmploymentChangeCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"employment_changes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employment_changes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"employment_id\\\" UUID,\\n \\\"kind\\\" TEXT,\\n \\\"effective_on\\\" TEXT,\\n \\\"from_value\\\" TEXT,\\n \\\"to_value\\\" TEXT,\\n \\\"note\\\" TEXT,\\n \\\"actor_profile_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effective_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"from_value\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"to_value\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"note\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"actor_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employment_changes_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"employment_changes_employment_idx\",\"columns\":[\"tenant_id\",\"employment_id\",\"effective_on\"]},{\"name\":\"employment_changes_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employment_changes_employment_id_idx\",\"columns\":[\"employment_id\"]},{\"name\":\"employment_changes_actor_profile_id_idx\",\"columns\":[\"actor_profile_id\"]}],\"version\":\"5d93422f\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentCollection\":{\"name\":\"employmentcollection\",\"className\":\"EmploymentCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentCollection\",\"collection\":\"employments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"employments\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Employment\",\"exportName\":\"EmploymentCollection\",\"collectionExportName\":\"EmploymentCollectionCollection\",\"schema\":{\"tableName\":\"employments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"profile_id\\\" UUID,\\n \\\"user_id\\\" UUID,\\n \\\"employer_profile_id\\\" UUID,\\n \\\"employee_number\\\" TEXT,\\n \\\"worker_type\\\" TEXT,\\n \\\"position\\\" TEXT,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"user_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employer_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employee_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"worker_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"position\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employments_tenant_id_employee_number_idx\",\"columns\":[\"tenant_id\",\"employee_number\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"employments_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"employments_tenant_profile_uq\",\"columns\":[\"tenant_id\",\"profile_id\"],\"unique\":true},{\"name\":\"employments_tenant_user_idx\",\"columns\":[\"tenant_id\",\"user_id\"]},{\"name\":\"employments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employments_profile_id_idx\",\"columns\":[\"profile_id\"]},{\"name\":\"employments_user_id_idx\",\"columns\":[\"user_id\"]},{\"name\":\"employments_employer_profile_id_idx\",\"columns\":[\"employer_profile_id\"]}],\"version\":\"ff7ef7a8\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentTermCollection\":{\"name\":\"employmenttermcollection\",\"className\":\"EmploymentTermCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentTermCollection\",\"collection\":\"employmentterms\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"employment_terms\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"EmploymentTerm\",\"exportName\":\"EmploymentTermCollection\",\"collectionExportName\":\"EmploymentTermCollectionCollection\",\"schema\":{\"tableName\":\"employment_terms\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employment_terms\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"employment_id\\\" UUID,\\n \\\"started_on\\\" TEXT,\\n \\\"ended_on\\\" TEXT,\\n \\\"end_reason\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"started_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"ended_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"end_reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employment_terms_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"employment_terms_employment_idx\",\"columns\":[\"tenant_id\",\"employment_id\",\"started_on\"]},{\"name\":\"employment_terms_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employment_terms_employment_id_idx\",\"columns\":[\"employment_id\"]}],\"version\":\"165d209b\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentChangeCollection\":{\"name\":\"employmentchangecollection\",\"className\":\"EmploymentChangeCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentChangeCollection\",\"collection\":\"employmentchanges\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"employment_changes\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"EmploymentChange\",\"exportName\":\"EmploymentChangeCollection\",\"collectionExportName\":\"EmploymentChangeCollectionCollection\",\"schema\":{\"tableName\":\"employment_changes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employment_changes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"employment_id\\\" UUID,\\n \\\"kind\\\" TEXT,\\n \\\"effective_on\\\" TEXT,\\n \\\"from_value\\\" TEXT,\\n \\\"to_value\\\" TEXT,\\n \\\"note\\\" TEXT,\\n \\\"actor_profile_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effective_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"from_value\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"to_value\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"note\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"actor_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employment_changes_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"employment_changes_employment_idx\",\"columns\":[\"tenant_id\",\"employment_id\",\"effective_on\"]},{\"name\":\"employment_changes_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employment_changes_employment_id_idx\",\"columns\":[\"employment_id\"]},{\"name\":\"employment_changes_actor_profile_id_idx\",\"columns\":[\"actor_profile_id\"]}],\"version\":\"5d93422f\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:Qualification\":{\"name\":\"qualification\",\"className\":\"Qualification\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:Qualification\",\"collection\":\"qualifications\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"key\":{\"type\":\"text\",\"required\":false},\"name\":{\"type\":\"text\",\"required\":false},\"kind\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"issuingBody\":{\"type\":\"text\",\"required\":false},\"expires\":{\"type\":\"boolean\",\"required\":true,\"default\":false},\"validityMonths\":{\"type\":\"integer\",\"required\":false,\"_meta\":{\"nullable\":true}},\"scope\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"isActive\":{\"type\":\"boolean\",\"required\":true,\"default\":true}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"qualifications\",\"sensitive\":true,\"conflictColumns\":[\"tenant_id\",\"key\"],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"Qualification\",\"collectionExportName\":\"QualificationCollection\",\"validationRules\":[{\"field\":\"expires\",\"rule\":\"required\",\"fieldType\":\"boolean\"},{\"field\":\"isActive\",\"rule\":\"required\",\"fieldType\":\"boolean\"}],\"schema\":{\"tableName\":\"qualifications\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"qualifications\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"key\\\" TEXT,\\n \\\"name\\\" TEXT,\\n \\\"kind\\\" TEXT,\\n \\\"issuing_body\\\" TEXT,\\n \\\"expires\\\" BOOLEAN NOT NULL DEFAULT FALSE,\\n \\\"validity_months\\\" INTEGER,\\n \\\"scope\\\" TEXT,\\n \\\"is_active\\\" BOOLEAN NOT NULL DEFAULT TRUE\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"issuing_body\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"expires\":{\"type\":\"BOOLEAN\",\"notNull\":true,\"unique\":false,\"default\":false},\"validity_months\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"scope\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"is_active\":{\"type\":\"BOOLEAN\",\"notNull\":true,\"unique\":false,\"default\":true}},\"indexes\":[{\"name\":\"qualifications_tenant_id_key_idx\",\"columns\":[\"tenant_id\",\"key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"qualifications_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"qualifications_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"c9fa3721\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:HeldQualification\":{\"name\":\"heldqualification\",\"className\":\"HeldQualification\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:HeldQualification\",\"collection\":\"heldqualifications\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"qualificationId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Qualification\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"profileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"employmentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Employment\",\"_meta\":{\"nullable\":true,\"onDelete\":\"RESTRICT\"}},\"issuedOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"expiresOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"certificateNumber\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"verifiedByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"nullable\":true,\"onDelete\":\"RESTRICT\"}},\"verifiedAt\":{\"type\":\"datetime\",\"required\":false},\"documentAssetId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-assets:Asset\",\"_meta\":{\"nullable\":true}},\"renewalOfId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"HeldQualification\",\"_meta\":{\"nullable\":true,\"onDelete\":\"RESTRICT\"}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"held_qualifications\",\"sensitive\":true,\"indexes\":[{\"name\":\"held_qualifications_profile_idx\",\"columns\":[\"tenantId\",\"profileId\",\"qualificationId\"]},{\"name\":\"held_qualifications_expiry_idx\",\"columns\":[\"tenantId\",\"status\",\"expiresOn\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"HeldQualification\",\"collectionExportName\":\"HeldQualificationCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"held_qualifications\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"held_qualifications\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"qualification_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"employment_id\\\" UUID,\\n \\\"issued_on\\\" TEXT,\\n \\\"expires_on\\\" TEXT,\\n \\\"certificate_number\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"verified_by_profile_id\\\" UUID,\\n \\\"verified_at\\\" TIMESTAMP,\\n \\\"document_asset_id\\\" UUID,\\n \\\"renewal_of_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"qualification_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"issued_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"expires_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"certificate_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"verified_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"verified_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"document_asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"renewal_of_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"held_qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}}},\"indexes\":[{\"name\":\"held_qualifications_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"held_qualifications_profile_idx\",\"columns\":[\"tenant_id\",\"profile_id\",\"qualification_id\"]},{\"name\":\"held_qualifications_expiry_idx\",\"columns\":[\"tenant_id\",\"status\",\"expires_on\"]},{\"name\":\"held_qualifications_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"held_qualifications_qualification_id_idx\",\"columns\":[\"qualification_id\"]},{\"name\":\"held_qualifications_profile_id_idx\",\"columns\":[\"profile_id\"]},{\"name\":\"held_qualifications_employment_id_idx\",\"columns\":[\"employment_id\"]},{\"name\":\"held_qualifications_verified_by_profile_id_idx\",\"columns\":[\"verified_by_profile_id\"]},{\"name\":\"held_qualifications_document_asset_id_idx\",\"columns\":[\"document_asset_id\"]},{\"name\":\"held_qualifications_renewal_of_id_idx\",\"columns\":[\"renewal_of_id\"]}],\"version\":\"fafbe37f\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:HeldQualificationChange\":{\"name\":\"heldqualificationchange\",\"className\":\"HeldQualificationChange\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:HeldQualificationChange\",\"collection\":\"heldqualificationchanges\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"heldQualificationId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"HeldQualification\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"kind\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"effectiveOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"reason\":{\"type\":\"text\",\"required\":false},\"actorProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"onDelete\":\"RESTRICT\"}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"held_qualification_changes\",\"sensitive\":true,\"indexes\":[{\"name\":\"held_qualification_changes_held_idx\",\"columns\":[\"tenantId\",\"heldQualificationId\",\"effectiveOn\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"HeldQualificationChange\",\"collectionExportName\":\"HeldQualificationChangeCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"held_qualification_changes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"held_qualification_changes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"held_qualification_id\\\" UUID,\\n \\\"kind\\\" TEXT,\\n \\\"effective_on\\\" TEXT,\\n \\\"reason\\\" TEXT,\\n \\\"actor_profile_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"held_qualification_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"held_qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effective_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"actor_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"held_qualification_changes_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"held_qualification_changes_held_idx\",\"columns\":[\"tenant_id\",\"held_qualification_id\",\"effective_on\"]},{\"name\":\"held_qualification_changes_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"held_qualification_changes_held_qualification_id_idx\",\"columns\":[\"held_qualification_id\"]},{\"name\":\"held_qualification_changes_actor_profile_id_idx\",\"columns\":[\"actor_profile_id\"]}],\"version\":\"ed9ed5e1\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:QualificationCollection\":{\"name\":\"qualificationcollection\",\"className\":\"QualificationCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:QualificationCollection\",\"collection\":\"qualifications\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"qualifications\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Qualification\",\"exportName\":\"QualificationCollection\",\"collectionExportName\":\"QualificationCollectionCollection\",\"schema\":{\"tableName\":\"qualifications\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"qualifications\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"key\\\" TEXT,\\n \\\"name\\\" TEXT,\\n \\\"kind\\\" TEXT,\\n \\\"issuing_body\\\" TEXT,\\n \\\"expires\\\" BOOLEAN NOT NULL DEFAULT FALSE,\\n \\\"validity_months\\\" INTEGER,\\n \\\"scope\\\" TEXT,\\n \\\"is_active\\\" BOOLEAN NOT NULL DEFAULT TRUE\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"issuing_body\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"expires\":{\"type\":\"BOOLEAN\",\"notNull\":true,\"unique\":false,\"default\":false},\"validity_months\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"scope\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"is_active\":{\"type\":\"BOOLEAN\",\"notNull\":true,\"unique\":false,\"default\":true}},\"indexes\":[{\"name\":\"qualifications_tenant_id_key_idx\",\"columns\":[\"tenant_id\",\"key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"qualifications_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"qualifications_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"c9fa3721\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:HeldQualificationCollection\":{\"name\":\"heldqualificationcollection\",\"className\":\"HeldQualificationCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:HeldQualificationCollection\",\"collection\":\"heldqualifications\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"held_qualifications\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"HeldQualification\",\"exportName\":\"HeldQualificationCollection\",\"collectionExportName\":\"HeldQualificationCollectionCollection\",\"schema\":{\"tableName\":\"held_qualifications\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"held_qualifications\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"qualification_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"employment_id\\\" UUID,\\n \\\"issued_on\\\" TEXT,\\n \\\"expires_on\\\" TEXT,\\n \\\"certificate_number\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"verified_by_profile_id\\\" UUID,\\n \\\"verified_at\\\" TIMESTAMP,\\n \\\"document_asset_id\\\" UUID,\\n \\\"renewal_of_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"qualification_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"issued_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"expires_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"certificate_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"verified_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"verified_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"document_asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"renewal_of_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"held_qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}}},\"indexes\":[{\"name\":\"held_qualifications_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"held_qualifications_profile_idx\",\"columns\":[\"tenant_id\",\"profile_id\",\"qualification_id\"]},{\"name\":\"held_qualifications_expiry_idx\",\"columns\":[\"tenant_id\",\"status\",\"expires_on\"]},{\"name\":\"held_qualifications_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"held_qualifications_qualification_id_idx\",\"columns\":[\"qualification_id\"]},{\"name\":\"held_qualifications_profile_id_idx\",\"columns\":[\"profile_id\"]},{\"name\":\"held_qualifications_employment_id_idx\",\"columns\":[\"employment_id\"]},{\"name\":\"held_qualifications_verified_by_profile_id_idx\",\"columns\":[\"verified_by_profile_id\"]},{\"name\":\"held_qualifications_document_asset_id_idx\",\"columns\":[\"document_asset_id\"]},{\"name\":\"held_qualifications_renewal_of_id_idx\",\"columns\":[\"renewal_of_id\"]}],\"version\":\"fafbe37f\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:HeldQualificationChangeCollection\":{\"name\":\"heldqualificationchangecollection\",\"className\":\"HeldQualificationChangeCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:HeldQualificationChangeCollection\",\"collection\":\"heldqualificationchanges\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"held_qualification_changes\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"HeldQualificationChange\",\"exportName\":\"HeldQualificationChangeCollection\",\"collectionExportName\":\"HeldQualificationChangeCollectionCollection\",\"schema\":{\"tableName\":\"held_qualification_changes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"held_qualification_changes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"held_qualification_id\\\" UUID,\\n \\\"kind\\\" TEXT,\\n \\\"effective_on\\\" TEXT,\\n \\\"reason\\\" TEXT,\\n \\\"actor_profile_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"held_qualification_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"held_qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effective_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"actor_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"held_qualification_changes_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"held_qualification_changes_held_idx\",\"columns\":[\"tenant_id\",\"held_qualification_id\",\"effective_on\"]},{\"name\":\"held_qualification_changes_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"held_qualification_changes_held_qualification_id_idx\",\"columns\":[\"held_qualification_id\"]},{\"name\":\"held_qualification_changes_actor_profile_id_idx\",\"columns\":[\"actor_profile_id\"]}],\"version\":\"ed9ed5e1\"},\"importPath\":\"@happyvertical/smrt-human-resources\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
8
|
+
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-human-resources\",\"packageVersion\":\"0.54.0\",\"objects\":{\"@happyvertical/smrt-human-resources:Employment\":{\"name\":\"employment\",\"className\":\"Employment\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:Employment\",\"collection\":\"employments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"profileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"userId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-users:User\",\"_meta\":{\"nullable\":true}},\"employerProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"nullable\":true,\"onDelete\":\"RESTRICT\"}},\"employeeNumber\":{\"type\":\"text\",\"required\":false},\"workerType\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"position\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"status\":{\"type\":\"text\",\"required\":false,\"_meta\":{}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"employments\",\"sensitive\":true,\"conflictColumns\":[\"tenant_id\",\"employee_number\"],\"indexes\":[{\"name\":\"employments_tenant_profile_uq\",\"columns\":[\"tenantId\",\"profileId\"],\"unique\":true},{\"name\":\"employments_tenant_user_idx\",\"columns\":[\"tenantId\",\"userId\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"Employment\",\"collectionExportName\":\"EmploymentCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"employments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"profile_id\\\" UUID,\\n \\\"user_id\\\" UUID,\\n \\\"employer_profile_id\\\" UUID,\\n \\\"employee_number\\\" TEXT,\\n \\\"worker_type\\\" TEXT,\\n \\\"position\\\" TEXT,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"user_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employer_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employee_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"worker_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"position\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employments_tenant_id_employee_number_idx\",\"columns\":[\"tenant_id\",\"employee_number\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"employments_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"employments_tenant_profile_uq\",\"columns\":[\"tenant_id\",\"profile_id\"],\"unique\":true},{\"name\":\"employments_tenant_user_idx\",\"columns\":[\"tenant_id\",\"user_id\"]},{\"name\":\"employments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employments_profile_id_idx\",\"columns\":[\"profile_id\"]},{\"name\":\"employments_user_id_idx\",\"columns\":[\"user_id\"]},{\"name\":\"employments_employer_profile_id_idx\",\"columns\":[\"employer_profile_id\"]}],\"version\":\"ff7ef7a8\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentTerm\":{\"name\":\"employmentterm\",\"className\":\"EmploymentTerm\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentTerm\",\"collection\":\"employmentterms\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"employmentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Employment\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"startedOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"endedOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"endReason\":{\"type\":\"text\",\"required\":false}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"employment_terms\",\"sensitive\":true,\"indexes\":[{\"name\":\"employment_terms_employment_idx\",\"columns\":[\"tenantId\",\"employmentId\",\"startedOn\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"EmploymentTerm\",\"collectionExportName\":\"EmploymentTermCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"employment_terms\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employment_terms\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"employment_id\\\" UUID,\\n \\\"started_on\\\" TEXT,\\n \\\"ended_on\\\" TEXT,\\n \\\"end_reason\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"started_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"ended_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"end_reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employment_terms_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"employment_terms_employment_idx\",\"columns\":[\"tenant_id\",\"employment_id\",\"started_on\"]},{\"name\":\"employment_terms_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employment_terms_employment_id_idx\",\"columns\":[\"employment_id\"]}],\"version\":\"165d209b\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentChange\":{\"name\":\"employmentchange\",\"className\":\"EmploymentChange\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentChange\",\"collection\":\"employmentchanges\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"employmentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Employment\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"kind\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"effectiveOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"fromValue\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"toValue\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"note\":{\"type\":\"text\",\"required\":false},\"actorProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"onDelete\":\"RESTRICT\"}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"employment_changes\",\"sensitive\":true,\"indexes\":[{\"name\":\"employment_changes_employment_idx\",\"columns\":[\"tenantId\",\"employmentId\",\"effectiveOn\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"EmploymentChange\",\"collectionExportName\":\"EmploymentChangeCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"employment_changes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employment_changes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"employment_id\\\" UUID,\\n \\\"kind\\\" TEXT,\\n \\\"effective_on\\\" TEXT,\\n \\\"from_value\\\" TEXT,\\n \\\"to_value\\\" TEXT,\\n \\\"note\\\" TEXT,\\n \\\"actor_profile_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effective_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"from_value\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"to_value\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"note\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"actor_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employment_changes_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"employment_changes_employment_idx\",\"columns\":[\"tenant_id\",\"employment_id\",\"effective_on\"]},{\"name\":\"employment_changes_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employment_changes_employment_id_idx\",\"columns\":[\"employment_id\"]},{\"name\":\"employment_changes_actor_profile_id_idx\",\"columns\":[\"actor_profile_id\"]}],\"version\":\"5d93422f\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentCollection\":{\"name\":\"employmentcollection\",\"className\":\"EmploymentCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentCollection\",\"collection\":\"employments\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"employments\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Employment\",\"exportName\":\"EmploymentCollection\",\"collectionExportName\":\"EmploymentCollectionCollection\",\"schema\":{\"tableName\":\"employments\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employments\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"profile_id\\\" UUID,\\n \\\"user_id\\\" UUID,\\n \\\"employer_profile_id\\\" UUID,\\n \\\"employee_number\\\" TEXT,\\n \\\"worker_type\\\" TEXT,\\n \\\"position\\\" TEXT,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"user_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employer_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employee_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"worker_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"position\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employments_tenant_id_employee_number_idx\",\"columns\":[\"tenant_id\",\"employee_number\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"employments_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"employments_tenant_profile_uq\",\"columns\":[\"tenant_id\",\"profile_id\"],\"unique\":true},{\"name\":\"employments_tenant_user_idx\",\"columns\":[\"tenant_id\",\"user_id\"]},{\"name\":\"employments_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employments_profile_id_idx\",\"columns\":[\"profile_id\"]},{\"name\":\"employments_user_id_idx\",\"columns\":[\"user_id\"]},{\"name\":\"employments_employer_profile_id_idx\",\"columns\":[\"employer_profile_id\"]}],\"version\":\"ff7ef7a8\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentTermCollection\":{\"name\":\"employmenttermcollection\",\"className\":\"EmploymentTermCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentTermCollection\",\"collection\":\"employmentterms\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"employment_terms\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"EmploymentTerm\",\"exportName\":\"EmploymentTermCollection\",\"collectionExportName\":\"EmploymentTermCollectionCollection\",\"schema\":{\"tableName\":\"employment_terms\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employment_terms\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"employment_id\\\" UUID,\\n \\\"started_on\\\" TEXT,\\n \\\"ended_on\\\" TEXT,\\n \\\"end_reason\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"started_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"ended_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"end_reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employment_terms_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"employment_terms_employment_idx\",\"columns\":[\"tenant_id\",\"employment_id\",\"started_on\"]},{\"name\":\"employment_terms_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employment_terms_employment_id_idx\",\"columns\":[\"employment_id\"]}],\"version\":\"165d209b\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:EmploymentChangeCollection\":{\"name\":\"employmentchangecollection\",\"className\":\"EmploymentChangeCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:EmploymentChangeCollection\",\"collection\":\"employmentchanges\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/employment/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"employment_changes\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"EmploymentChange\",\"exportName\":\"EmploymentChangeCollection\",\"collectionExportName\":\"EmploymentChangeCollectionCollection\",\"schema\":{\"tableName\":\"employment_changes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"employment_changes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"employment_id\\\" UUID,\\n \\\"kind\\\" TEXT,\\n \\\"effective_on\\\" TEXT,\\n \\\"from_value\\\" TEXT,\\n \\\"to_value\\\" TEXT,\\n \\\"note\\\" TEXT,\\n \\\"actor_profile_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effective_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"from_value\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"to_value\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"note\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"actor_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"employment_changes_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"employment_changes_employment_idx\",\"columns\":[\"tenant_id\",\"employment_id\",\"effective_on\"]},{\"name\":\"employment_changes_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"employment_changes_employment_id_idx\",\"columns\":[\"employment_id\"]},{\"name\":\"employment_changes_actor_profile_id_idx\",\"columns\":[\"actor_profile_id\"]}],\"version\":\"5d93422f\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:Qualification\":{\"name\":\"qualification\",\"className\":\"Qualification\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:Qualification\",\"collection\":\"qualifications\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"key\":{\"type\":\"text\",\"required\":false},\"name\":{\"type\":\"text\",\"required\":false},\"kind\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"issuingBody\":{\"type\":\"text\",\"required\":false},\"expires\":{\"type\":\"boolean\",\"required\":true,\"default\":false},\"validityMonths\":{\"type\":\"integer\",\"required\":false,\"_meta\":{\"nullable\":true}},\"scope\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"isActive\":{\"type\":\"boolean\",\"required\":true,\"default\":true}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"qualifications\",\"sensitive\":true,\"conflictColumns\":[\"tenant_id\",\"key\"],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"Qualification\",\"collectionExportName\":\"QualificationCollection\",\"validationRules\":[{\"field\":\"expires\",\"rule\":\"required\",\"fieldType\":\"boolean\"},{\"field\":\"isActive\",\"rule\":\"required\",\"fieldType\":\"boolean\"}],\"schema\":{\"tableName\":\"qualifications\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"qualifications\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"key\\\" TEXT,\\n \\\"name\\\" TEXT,\\n \\\"kind\\\" TEXT,\\n \\\"issuing_body\\\" TEXT,\\n \\\"expires\\\" BOOLEAN NOT NULL DEFAULT FALSE,\\n \\\"validity_months\\\" INTEGER,\\n \\\"scope\\\" TEXT,\\n \\\"is_active\\\" BOOLEAN NOT NULL DEFAULT TRUE\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"issuing_body\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"expires\":{\"type\":\"BOOLEAN\",\"notNull\":true,\"unique\":false,\"default\":false},\"validity_months\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"scope\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"is_active\":{\"type\":\"BOOLEAN\",\"notNull\":true,\"unique\":false,\"default\":true}},\"indexes\":[{\"name\":\"qualifications_tenant_id_key_idx\",\"columns\":[\"tenant_id\",\"key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"qualifications_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"qualifications_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"c9fa3721\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:HeldQualification\":{\"name\":\"heldqualification\",\"className\":\"HeldQualification\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:HeldQualification\",\"collection\":\"heldqualifications\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"qualificationId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Qualification\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"profileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"employmentId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Employment\",\"_meta\":{\"nullable\":true,\"onDelete\":\"RESTRICT\"}},\"issuedOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"expiresOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"nullable\":true}},\"certificateNumber\":{\"type\":\"text\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"verifiedByProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"nullable\":true,\"onDelete\":\"RESTRICT\"}},\"verifiedAt\":{\"type\":\"datetime\",\"required\":false},\"documentAssetId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-assets:Asset\",\"_meta\":{\"nullable\":true}},\"renewalOfId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"HeldQualification\",\"_meta\":{\"nullable\":true,\"onDelete\":\"RESTRICT\"}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"held_qualifications\",\"sensitive\":true,\"indexes\":[{\"name\":\"held_qualifications_profile_idx\",\"columns\":[\"tenantId\",\"profileId\",\"qualificationId\"]},{\"name\":\"held_qualifications_expiry_idx\",\"columns\":[\"tenantId\",\"status\",\"expiresOn\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"HeldQualification\",\"collectionExportName\":\"HeldQualificationCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"held_qualifications\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"held_qualifications\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"qualification_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"employment_id\\\" UUID,\\n \\\"issued_on\\\" TEXT,\\n \\\"expires_on\\\" TEXT,\\n \\\"certificate_number\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"verified_by_profile_id\\\" UUID,\\n \\\"verified_at\\\" TIMESTAMP,\\n \\\"document_asset_id\\\" UUID,\\n \\\"renewal_of_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"qualification_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"issued_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"expires_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"certificate_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"verified_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"verified_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"document_asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"renewal_of_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"held_qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}}},\"indexes\":[{\"name\":\"held_qualifications_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"held_qualifications_profile_idx\",\"columns\":[\"tenant_id\",\"profile_id\",\"qualification_id\"]},{\"name\":\"held_qualifications_expiry_idx\",\"columns\":[\"tenant_id\",\"status\",\"expires_on\"]},{\"name\":\"held_qualifications_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"held_qualifications_qualification_id_idx\",\"columns\":[\"qualification_id\"]},{\"name\":\"held_qualifications_profile_id_idx\",\"columns\":[\"profile_id\"]},{\"name\":\"held_qualifications_employment_id_idx\",\"columns\":[\"employment_id\"]},{\"name\":\"held_qualifications_verified_by_profile_id_idx\",\"columns\":[\"verified_by_profile_id\"]},{\"name\":\"held_qualifications_document_asset_id_idx\",\"columns\":[\"document_asset_id\"]},{\"name\":\"held_qualifications_renewal_of_id_idx\",\"columns\":[\"renewal_of_id\"]}],\"version\":\"fafbe37f\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:HeldQualificationChange\":{\"name\":\"heldqualificationchange\",\"className\":\"HeldQualificationChange\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:HeldQualificationChange\",\"collection\":\"heldqualificationchanges\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{\"tenantId\":{\"type\":\"text\",\"required\":true,\"_meta\":{\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":true,\"autoPopulate\":true,\"nullable\":false,\"mode\":\"required\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"heldQualificationId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"HeldQualification\",\"_meta\":{\"onDelete\":\"RESTRICT\"}},\"kind\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"effectiveOn\":{\"type\":\"text\",\"required\":false,\"_meta\":{}},\"reason\":{\"type\":\"text\",\"required\":false},\"actorProfileId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-profiles:Profile\",\"_meta\":{\"onDelete\":\"RESTRICT\"}}},\"methods\":{\"save\":{\"name\":\"save\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<this>\",\"isStatic\":false,\"isPublic\":true},\"delete\":{\"name\":\"delete\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<void>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"held_qualification_changes\",\"sensitive\":true,\"indexes\":[{\"name\":\"held_qualification_changes_held_idx\",\"columns\":[\"tenantId\",\"heldQualificationId\",\"effectiveOn\"]}],\"api\":{\"include\":[]},\"cli\":{\"include\":[]},\"mcp\":{\"include\":[]},\"tenantScoped\":{\"mode\":\"required\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\"]},\"extends\":\"SmrtObject\",\"exportName\":\"HeldQualificationChange\",\"collectionExportName\":\"HeldQualificationChangeCollection\",\"validationRules\":[],\"schema\":{\"tableName\":\"held_qualification_changes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"held_qualification_changes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"held_qualification_id\\\" UUID,\\n \\\"kind\\\" TEXT,\\n \\\"effective_on\\\" TEXT,\\n \\\"reason\\\" TEXT,\\n \\\"actor_profile_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"held_qualification_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"held_qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effective_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"actor_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"held_qualification_changes_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"held_qualification_changes_held_idx\",\"columns\":[\"tenant_id\",\"held_qualification_id\",\"effective_on\"]},{\"name\":\"held_qualification_changes_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"held_qualification_changes_held_qualification_id_idx\",\"columns\":[\"held_qualification_id\"]},{\"name\":\"held_qualification_changes_actor_profile_id_idx\",\"columns\":[\"actor_profile_id\"]}],\"version\":\"ed9ed5e1\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:QualificationCollection\":{\"name\":\"qualificationcollection\",\"className\":\"QualificationCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:QualificationCollection\",\"collection\":\"qualifications\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"qualifications\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Qualification\",\"exportName\":\"QualificationCollection\",\"collectionExportName\":\"QualificationCollectionCollection\",\"schema\":{\"tableName\":\"qualifications\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"qualifications\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"key\\\" TEXT,\\n \\\"name\\\" TEXT,\\n \\\"kind\\\" TEXT,\\n \\\"issuing_body\\\" TEXT,\\n \\\"expires\\\" BOOLEAN NOT NULL DEFAULT FALSE,\\n \\\"validity_months\\\" INTEGER,\\n \\\"scope\\\" TEXT,\\n \\\"is_active\\\" BOOLEAN NOT NULL DEFAULT TRUE\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"issuing_body\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"expires\":{\"type\":\"BOOLEAN\",\"notNull\":true,\"unique\":false,\"default\":false},\"validity_months\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false},\"scope\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"is_active\":{\"type\":\"BOOLEAN\",\"notNull\":true,\"unique\":false,\"default\":true}},\"indexes\":[{\"name\":\"qualifications_tenant_id_key_idx\",\"columns\":[\"tenant_id\",\"key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"qualifications_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"qualifications_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"c9fa3721\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:HeldQualificationCollection\":{\"name\":\"heldqualificationcollection\",\"className\":\"HeldQualificationCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:HeldQualificationCollection\",\"collection\":\"heldqualifications\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"held_qualifications\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"HeldQualification\",\"exportName\":\"HeldQualificationCollection\",\"collectionExportName\":\"HeldQualificationCollectionCollection\",\"schema\":{\"tableName\":\"held_qualifications\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"held_qualifications\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"qualification_id\\\" UUID,\\n \\\"profile_id\\\" UUID,\\n \\\"employment_id\\\" UUID,\\n \\\"issued_on\\\" TEXT,\\n \\\"expires_on\\\" TEXT,\\n \\\"certificate_number\\\" TEXT,\\n \\\"status\\\" TEXT,\\n \\\"verified_by_profile_id\\\" UUID,\\n \\\"verified_at\\\" TIMESTAMP,\\n \\\"document_asset_id\\\" UUID,\\n \\\"renewal_of_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"qualification_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"employment_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"employments\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"issued_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"expires_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"certificate_number\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"verified_by_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"verified_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"document_asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false},\"renewal_of_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"held_qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}}},\"indexes\":[{\"name\":\"held_qualifications_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"held_qualifications_profile_idx\",\"columns\":[\"tenant_id\",\"profile_id\",\"qualification_id\"]},{\"name\":\"held_qualifications_expiry_idx\",\"columns\":[\"tenant_id\",\"status\",\"expires_on\"]},{\"name\":\"held_qualifications_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"held_qualifications_qualification_id_idx\",\"columns\":[\"qualification_id\"]},{\"name\":\"held_qualifications_profile_id_idx\",\"columns\":[\"profile_id\"]},{\"name\":\"held_qualifications_employment_id_idx\",\"columns\":[\"employment_id\"]},{\"name\":\"held_qualifications_verified_by_profile_id_idx\",\"columns\":[\"verified_by_profile_id\"]},{\"name\":\"held_qualifications_document_asset_id_idx\",\"columns\":[\"document_asset_id\"]},{\"name\":\"held_qualifications_renewal_of_id_idx\",\"columns\":[\"renewal_of_id\"]}],\"version\":\"fafbe37f\"},\"importPath\":\"@happyvertical/smrt-human-resources\"},\"@happyvertical/smrt-human-resources:HeldQualificationChangeCollection\":{\"name\":\"heldqualificationchangecollection\",\"className\":\"HeldQualificationChangeCollection\",\"qualifiedName\":\"@happyvertical/smrt-human-resources:HeldQualificationChangeCollection\",\"collection\":\"heldqualificationchanges\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/human-resources/src/qualifications/models.ts\",\"packageName\":\"@happyvertical/smrt-human-resources\",\"fields\":{},\"methods\":{},\"decoratorConfig\":{\"api\":{\"include\":[]},\"mcp\":{\"include\":[]},\"cli\":false,\"tableName\":\"held_qualification_changes\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"HeldQualificationChange\",\"exportName\":\"HeldQualificationChangeCollection\",\"collectionExportName\":\"HeldQualificationChangeCollectionCollection\",\"schema\":{\"tableName\":\"held_qualification_changes\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"held_qualification_changes\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID NOT NULL,\\n \\\"held_qualification_id\\\" UUID,\\n \\\"kind\\\" TEXT,\\n \\\"effective_on\\\" TEXT,\\n \\\"reason\\\" TEXT,\\n \\\"actor_profile_id\\\" UUID\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":true,\"unique\":false},\"held_qualification_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false,\"foreignKey\":{\"table\":\"held_qualifications\",\"column\":\"id\",\"onDelete\":\"RESTRICT\",\"onUpdate\":\"CASCADE\"}},\"kind\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effective_on\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"reason\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"actor_profile_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"held_qualification_changes_slug_context_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\"],\"unique\":true},{\"name\":\"held_qualification_changes_held_idx\",\"columns\":[\"tenant_id\",\"held_qualification_id\",\"effective_on\"]},{\"name\":\"held_qualification_changes_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"held_qualification_changes_held_qualification_id_idx\",\"columns\":[\"held_qualification_id\"]},{\"name\":\"held_qualification_changes_actor_profile_id_idx\",\"columns\":[\"actor_profile_id\"]}],\"version\":\"ed9ed5e1\"},\"importPath\":\"@happyvertical/smrt-human-resources\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
9
9
|
//#endregion
|
|
10
10
|
//#region src/dates.ts
|
|
11
11
|
var ISO_DATE = /^(\d{4})-(\d{2})-(\d{2})$/;
|
package/dist/manifest.json
CHANGED
package/dist/smrt-knowledge.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"sensitiveFieldsExcluded": true,
|
|
4
4
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
5
5
|
"packageName": "@happyvertical/smrt-human-resources",
|
|
6
|
-
"packageVersion": "0.
|
|
6
|
+
"packageVersion": "0.54.0",
|
|
7
7
|
"sourceManifestPath": "dist/manifest.json",
|
|
8
8
|
"agentDocPath": "AGENTS.md",
|
|
9
9
|
"sourceHashes": {
|
|
10
|
-
"manifest": "
|
|
11
|
-
"packageJson": "
|
|
10
|
+
"manifest": "255bb805ce8152398b11bb1de7cc6aab985843c3e3c41f5e9f7a965ac213dbba",
|
|
11
|
+
"packageJson": "746070d2d15195d800a244c9e0f8b9b3cdf165cb67841b89042144ba022c001b",
|
|
12
12
|
"agents": "441cce6da32d348df8bb6300d526f118d70efa5680c80615d373cc8ef98e95f4"
|
|
13
13
|
},
|
|
14
14
|
"exports": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-human-resources",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.54.0",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "HR records for the SMRT framework: who works for an organization, as what, and with what standing — employment with dated terms, and qualifications with expiry",
|
|
6
6
|
"type": "module",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@happyvertical/logger": "^0.100.3",
|
|
34
|
-
"@happyvertical/smrt-core": "0.
|
|
35
|
-
"@happyvertical/smrt-tenancy": "0.
|
|
36
|
-
"@happyvertical/smrt-types": "0.
|
|
37
|
-
"@happyvertical/smrt-ui": "0.
|
|
34
|
+
"@happyvertical/smrt-core": "0.54.0",
|
|
35
|
+
"@happyvertical/smrt-tenancy": "0.54.0",
|
|
36
|
+
"@happyvertical/smrt-types": "0.54.0",
|
|
37
|
+
"@happyvertical/smrt-ui": "0.54.0",
|
|
38
38
|
"@happyvertical/sql": "^0.100.3"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@happyvertical/smrt-vitest": "0.
|
|
49
|
+
"@happyvertical/smrt-vitest": "0.54.0",
|
|
50
50
|
"@sveltejs/package": "^2.5.8",
|
|
51
51
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|
|
52
52
|
"@types/node": "24.13.6",
|