@things-factory/work-shift 10.1.141 → 10.1.145
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-client/bootstrap.js +5 -1
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/index.d.ts +2 -1
- package/dist-server/service/index.js +1 -0
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/work-shift/index.d.ts +2 -1
- package/dist-server/service/work-shift/index.js +2 -1
- package/dist-server/service/work-shift/index.js.map +1 -1
- package/dist-server/service/work-shift/work-shift-change-approval.d.ts +14 -0
- package/dist-server/service/work-shift/work-shift-change-approval.js +64 -0
- package/dist-server/service/work-shift/work-shift-change-approval.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/translations/en.json +6 -1
- package/translations/ja.json +6 -1
- package/translations/ko.json +6 -1
- package/translations/ms.json +6 -1
- package/translations/zh.json +6 -1
|
@@ -5,8 +5,9 @@ export * from './work-shift/work-shift-lifecycle';
|
|
|
5
5
|
export * from './work-shift/work-shift-arrangement';
|
|
6
6
|
export * from './work-shift/work-shift-content';
|
|
7
7
|
export * from './work-shift/work-shift-baseline';
|
|
8
|
+
export * from './work-shift/work-shift-change-approval';
|
|
8
9
|
export * from './work-shift/days-of-week';
|
|
9
10
|
export declare const entities: (typeof import("./work-shift/work-shift").WorkShift | typeof import("./work-shift/work-shift-arrangement").WorkShiftArrangement | typeof import("./work-shift/work-shift-revision").WorkShiftRevision | typeof import("./work-shift/work-shift-revision").WorkShiftPlan | typeof import("./work-shift/work-shift-revision").WorkShiftSegment | typeof import("./work-shift/work-shift-revision").WorkShiftBasis)[];
|
|
10
11
|
export declare const schema: {
|
|
11
|
-
resolverClasses: (typeof import("./work-shift/work-shift-query").DomainWorkShiftQuery | typeof import("./work-shift/work-shift-query").WorkShiftQuery | typeof import("./work-shift/work-shift-mutation").WorkShiftMutation | typeof import("./work-shift/work-shift-lifecycle-resolver").WorkShiftLifecycleResolver)[];
|
|
12
|
+
resolverClasses: (typeof import("./work-shift/work-shift-change-approval").WorkShiftChangeApprovalResolver | typeof import("./work-shift/work-shift-query").DomainWorkShiftQuery | typeof import("./work-shift/work-shift-query").WorkShiftQuery | typeof import("./work-shift/work-shift-mutation").WorkShiftMutation | typeof import("./work-shift/work-shift-lifecycle-resolver").WorkShiftLifecycleResolver)[];
|
|
12
13
|
};
|
|
@@ -10,6 +10,7 @@ tslib_1.__exportStar(require("./work-shift/work-shift-lifecycle"), exports);
|
|
|
10
10
|
tslib_1.__exportStar(require("./work-shift/work-shift-arrangement"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./work-shift/work-shift-content"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./work-shift/work-shift-baseline"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./work-shift/work-shift-change-approval"), exports);
|
|
13
14
|
/*
|
|
14
15
|
* This file names each source file rather than re-exporting the folder barrel, so anything added
|
|
15
16
|
* to that barrel stops at the package boundary unless it is also listed here. `daysOfWeek` is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,kEAAuC;AACvC,2EAAgD;AAChD,mFAAwD;AACxD,4EAAiD;AACjD,8EAAmD;AACnD,0EAA+C;AAC/C,2EAAgD;AAChD;;;;;GAKG;AACH,oEAAyC;AAEzC,mCAAmC;AACnC,6CAA6F;AAEhF,QAAA,QAAQ,GAAG;IACtB,cAAc;IACf,GAAG,qBAAiB;CACpB,CAAA;AAGY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACxB,GAAG,sBAAkB;KACpB;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './work-shift/work-shift'\nexport * from './work-shift/work-shift-revision'\nexport * from './work-shift/work-shift-revision-service'\nexport * from './work-shift/work-shift-lifecycle'\nexport * from './work-shift/work-shift-arrangement'\nexport * from './work-shift/work-shift-content'\nexport * from './work-shift/work-shift-baseline'\n/*\n * This file names each source file rather than re-exporting the folder barrel, so anything added\n * to that barrel stops at the package boundary unless it is also listed here. `daysOfWeek` is\n * stored as a CSV and every consumer has to parse it, so the parser has to be reachable — a\n * consumer that cannot import it writes its own, and the two disagree quietly.\n */\nexport * from './work-shift/days-of-week'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport { entities as WorkShiftEntities, resolvers as WorkShiftResolvers } from './work-shift'\n\nexport const entities = [ \n /* ENTITIES */\n\t...WorkShiftEntities,\n] \n\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n\t\t...WorkShiftResolvers,\n ] \n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,kEAAuC;AACvC,2EAAgD;AAChD,mFAAwD;AACxD,4EAAiD;AACjD,8EAAmD;AACnD,0EAA+C;AAC/C,2EAAgD;AAChD,kFAAuD;AACvD;;;;;GAKG;AACH,oEAAyC;AAEzC,mCAAmC;AACnC,6CAA6F;AAEhF,QAAA,QAAQ,GAAG;IACtB,cAAc;IACf,GAAG,qBAAiB;CACpB,CAAA;AAGY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACxB,GAAG,sBAAkB;KACpB;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './work-shift/work-shift'\nexport * from './work-shift/work-shift-revision'\nexport * from './work-shift/work-shift-revision-service'\nexport * from './work-shift/work-shift-lifecycle'\nexport * from './work-shift/work-shift-arrangement'\nexport * from './work-shift/work-shift-content'\nexport * from './work-shift/work-shift-baseline'\nexport * from './work-shift/work-shift-change-approval'\n/*\n * This file names each source file rather than re-exporting the folder barrel, so anything added\n * to that barrel stops at the package boundary unless it is also listed here. `daysOfWeek` is\n * stored as a CSV and every consumer has to parse it, so the parser has to be reachable — a\n * consumer that cannot import it writes its own, and the two disagree quietly.\n */\nexport * from './work-shift/days-of-week'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport { entities as WorkShiftEntities, resolvers as WorkShiftResolvers } from './work-shift'\n\nexport const entities = [ \n /* ENTITIES */\n\t...WorkShiftEntities,\n] \n\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n\t\t...WorkShiftResolvers,\n ] \n}\n"]}
|
|
@@ -3,6 +3,7 @@ import { WorkShift } from './work-shift';
|
|
|
3
3
|
import { WorkShiftMutation } from './work-shift-mutation';
|
|
4
4
|
import { WorkShiftLifecycleResolver } from './work-shift-lifecycle-resolver';
|
|
5
5
|
import { WorkShiftArrangement } from './work-shift-arrangement';
|
|
6
|
+
import { WorkShiftChangeApprovalResolver } from './work-shift-change-approval';
|
|
6
7
|
export * from './days-of-week';
|
|
7
8
|
export declare const entities: (typeof WorkShift | typeof WorkShiftArrangement | typeof import("./work-shift-revision").WorkShiftRevision | typeof import("./work-shift-revision").WorkShiftPlan | typeof import("./work-shift-revision").WorkShiftSegment | typeof import("./work-shift-revision").WorkShiftBasis)[];
|
|
8
|
-
export declare const resolvers: (typeof DomainWorkShiftQuery | typeof WorkShiftQuery | typeof WorkShiftMutation | typeof WorkShiftLifecycleResolver)[];
|
|
9
|
+
export declare const resolvers: (typeof WorkShiftChangeApprovalResolver | typeof DomainWorkShiftQuery | typeof WorkShiftQuery | typeof WorkShiftMutation | typeof WorkShiftLifecycleResolver)[];
|
|
@@ -8,6 +8,7 @@ const work_shift_mutation_1 = require("./work-shift-mutation");
|
|
|
8
8
|
const work_shift_lifecycle_resolver_1 = require("./work-shift-lifecycle-resolver");
|
|
9
9
|
const work_shift_revision_1 = require("./work-shift-revision");
|
|
10
10
|
const work_shift_arrangement_1 = require("./work-shift-arrangement");
|
|
11
|
+
const work_shift_change_approval_1 = require("./work-shift-change-approval");
|
|
11
12
|
/*
|
|
12
13
|
* The weekday rule is exported so consumers read the column through one parser. It is a CSV
|
|
13
14
|
* because array columns are not portable across the five drivers, and a parser written twice
|
|
@@ -15,5 +16,5 @@ const work_shift_arrangement_1 = require("./work-shift-arrangement");
|
|
|
15
16
|
*/
|
|
16
17
|
tslib_1.__exportStar(require("./days-of-week"), exports);
|
|
17
18
|
exports.entities = [work_shift_1.WorkShift, work_shift_arrangement_1.WorkShiftArrangement, ...work_shift_revision_1.WORK_SHIFT_REVISION_ENTITIES];
|
|
18
|
-
exports.resolvers = [work_shift_query_1.DomainWorkShiftQuery, work_shift_query_1.WorkShiftQuery, work_shift_mutation_1.WorkShiftMutation, work_shift_lifecycle_resolver_1.WorkShiftLifecycleResolver];
|
|
19
|
+
exports.resolvers = [work_shift_query_1.DomainWorkShiftQuery, work_shift_query_1.WorkShiftQuery, work_shift_mutation_1.WorkShiftMutation, work_shift_lifecycle_resolver_1.WorkShiftLifecycleResolver, work_shift_change_approval_1.WorkShiftChangeApprovalResolver];
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/work-shift/index.ts"],"names":[],"mappings":";;;;AAAA,yDAAyE;AAEzE,6CAAwC;AACxC,+DAAyD;AACzD,mFAA4E;AAC5E,+DAAoE;AACpE,qEAA+D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/work-shift/index.ts"],"names":[],"mappings":";;;;AAAA,yDAAyE;AAEzE,6CAAwC;AACxC,+DAAyD;AACzD,mFAA4E;AAC5E,+DAAoE;AACpE,qEAA+D;AAC/D,6EAA8E;AAE9E;;;;GAIG;AACH,yDAA8B;AAEjB,QAAA,QAAQ,GAAG,CAAC,sBAAS,EAAE,6CAAoB,EAAE,GAAG,kDAA4B,CAAC,CAAA;AAC7E,QAAA,SAAS,GAAG,CAAC,uCAAoB,EAAE,iCAAc,EAAE,uCAAiB,EAAE,0DAA0B,EAAE,4DAA+B,CAAC,CAAA","sourcesContent":["import { DomainWorkShiftQuery, WorkShiftQuery } from './work-shift-query'\n\nimport { WorkShift } from './work-shift'\nimport { WorkShiftMutation } from './work-shift-mutation'\nimport { WorkShiftLifecycleResolver } from './work-shift-lifecycle-resolver'\nimport { WORK_SHIFT_REVISION_ENTITIES } from './work-shift-revision'\nimport { WorkShiftArrangement } from './work-shift-arrangement'\nimport { WorkShiftChangeApprovalResolver } from './work-shift-change-approval'\n\n/*\n * The weekday rule is exported so consumers read the column through one parser. It is a CSV\n * because array columns are not portable across the five drivers, and a parser written twice\n * disagrees eventually — quietly, since both halves keep computing (§`days-of-week.ts`).\n */\nexport * from './days-of-week'\n\nexport const entities = [WorkShift, WorkShiftArrangement, ...WORK_SHIFT_REVISION_ENTITIES]\nexport const resolvers = [DomainWorkShiftQuery, WorkShiftQuery, WorkShiftMutation, WorkShiftLifecycleResolver, WorkShiftChangeApprovalResolver]\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type MasterChangeAxis } from '@things-factory/ops-master';
|
|
2
|
+
/**
|
|
3
|
+
* The shift arrangement goes through the master-change approval ops-master owns (ADR-0086 decision 1,
|
|
4
|
+
* amended 2026-10-10). Its revision steps live here, so this package registers its axis; ops-master
|
|
5
|
+
* cannot import work-shift, which already depends on it.
|
|
6
|
+
*/
|
|
7
|
+
export declare const WORK_SHIFT_CHANGE: MasterChangeAxis;
|
|
8
|
+
export declare class WorkShiftChangeApprovalResolver {
|
|
9
|
+
submitWorkShiftDraft(revisionId: string, editGeneration: number, context: ResolverContext): Promise<{
|
|
10
|
+
revisionId: string;
|
|
11
|
+
activityInstanceId: string;
|
|
12
|
+
contentHash?: string;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkShiftChangeApprovalResolver = exports.WORK_SHIFT_CHANGE = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
|
6
|
+
const ops_master_1 = require("@things-factory/ops-master");
|
|
7
|
+
const shell_1 = require("@things-factory/shell");
|
|
8
|
+
const work_shift_lifecycle_1 = require("./work-shift-lifecycle");
|
|
9
|
+
/**
|
|
10
|
+
* The shift arrangement goes through the master-change approval ops-master owns (ADR-0086 decision 1,
|
|
11
|
+
* amended 2026-10-10). Its revision steps live here, so this package registers its axis; ops-master
|
|
12
|
+
* cannot import work-shift, which already depends on it.
|
|
13
|
+
*/
|
|
14
|
+
exports.WORK_SHIFT_CHANGE = {
|
|
15
|
+
axis: 'workShift',
|
|
16
|
+
activity: 'WorkShiftChangeApproval',
|
|
17
|
+
label: 'shift pattern change approval',
|
|
18
|
+
description: 'Approve the complete shift arrangement, time zone and effective date',
|
|
19
|
+
category: 'schedule',
|
|
20
|
+
guide: [
|
|
21
|
+
'Compare the previous and proposed definition and check when the new definition will apply.',
|
|
22
|
+
'Approval publishes this exact revision. It does not change executions already recorded.',
|
|
23
|
+
'An empty approval line refuses submission. The author cannot approve their own change.'
|
|
24
|
+
],
|
|
25
|
+
readiness: {
|
|
26
|
+
stage: 'partial',
|
|
27
|
+
tests: ['things-factory/packages/work-shift/test/work-shift-change-approval.db.test.cjs'],
|
|
28
|
+
gaps: ['Holiday and location calendar revision closure requires separate work.'],
|
|
29
|
+
notes: 'Declared regulated axes require this approval. Non-regulated publication records its policy and publisher. Recorded executions keep their exact revision.'
|
|
30
|
+
},
|
|
31
|
+
before: 'previous definition',
|
|
32
|
+
after: 'proposed definition',
|
|
33
|
+
issuedAs: '교대 편성 변경',
|
|
34
|
+
caveat: 'The signed revision stays. Correct it with another approved revision; recorded executions keep their basis.',
|
|
35
|
+
Refusal: work_shift_lifecycle_1.WorkShiftRefusal,
|
|
36
|
+
freeze: work_shift_lifecycle_1.freezeWorkShiftDraft,
|
|
37
|
+
approvalInput: work_shift_lifecycle_1.workShiftApprovalInput,
|
|
38
|
+
bind: work_shift_lifecycle_1.bindWorkShiftApproval,
|
|
39
|
+
assertApprovalInput: work_shift_lifecycle_1.assertWorkShiftApprovalInput,
|
|
40
|
+
publish: work_shift_lifecycle_1.publishWorkShiftRevision
|
|
41
|
+
};
|
|
42
|
+
(0, ops_master_1.installMasterChangeAxis)(exports.WORK_SHIFT_CHANGE, 'work-shift');
|
|
43
|
+
let WorkShiftChangeApprovalResolver = class WorkShiftChangeApprovalResolver {
|
|
44
|
+
async submitWorkShiftDraft(revisionId, editGeneration, context) {
|
|
45
|
+
return (0, ops_master_1.submitMasterChangeDraft)('workShift', revisionId, editGeneration, context);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.WorkShiftChangeApprovalResolver = WorkShiftChangeApprovalResolver;
|
|
49
|
+
tslib_1.__decorate([
|
|
50
|
+
(0, type_graphql_1.Directive)('@privilege(category: "work-shift", privilege: "mutation", domainOwnerGranted: true)'),
|
|
51
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
52
|
+
(0, type_graphql_1.Mutation)(() => shell_1.ScalarObject, { description: 'Submit a shift arrangement draft for approval' }),
|
|
53
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('revisionId')),
|
|
54
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('editGeneration', () => type_graphql_1.Int)),
|
|
55
|
+
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
56
|
+
tslib_1.__metadata("design:type", Function),
|
|
57
|
+
tslib_1.__metadata("design:paramtypes", [String, Number, Object]),
|
|
58
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
59
|
+
], WorkShiftChangeApprovalResolver.prototype, "submitWorkShiftDraft", null);
|
|
60
|
+
exports.WorkShiftChangeApprovalResolver = WorkShiftChangeApprovalResolver = tslib_1.__decorate([
|
|
61
|
+
(0, type_graphql_1.Resolver)(),
|
|
62
|
+
(0, type_graphql_1.UseMiddleware)(shell_1.SpeakRefusals)
|
|
63
|
+
], WorkShiftChangeApprovalResolver);
|
|
64
|
+
//# sourceMappingURL=work-shift-change-approval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-shift-change-approval.js","sourceRoot":"","sources":["../../../server/service/work-shift/work-shift-change-approval.ts"],"names":[],"mappings":";;;;AAAA,+CAA0F;AAE1F,2DAAoH;AACpH,iDAAmE;AAEnE,iEAO+B;AAE/B;;;;GAIG;AACU,QAAA,iBAAiB,GAAqB;IACjD,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,yBAAyB;IACnC,KAAK,EAAE,+BAA+B;IACtC,WAAW,EAAE,sEAAsE;IACnF,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE;QACL,4FAA4F;QAC5F,yFAAyF;QACzF,wFAAwF;KACzF;IACD,SAAS,EAAE;QACT,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,CAAC,gFAAgF,CAAC;QACzF,IAAI,EAAE,CAAC,wEAAwE,CAAC;QAChF,KAAK,EAAE,2JAA2J;KACnK;IACD,MAAM,EAAE,qBAAqB;IAC7B,KAAK,EAAE,qBAAqB;IAC5B,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,6GAA6G;IACrH,OAAO,EAAE,uCAAuB;IAChC,MAAM,EAAE,2CAA2B;IACnC,aAAa,EAAE,6CAA6B;IAC5C,IAAI,EAAE,4CAA4B;IAClC,mBAAmB,EAAE,mDAAmC;IACxD,OAAO,EAAE,+CAA+B;CACzC,CAAA;AAED,IAAA,oCAAuB,EAAC,yBAAiB,EAAE,YAAY,CAAC,CAAA;AAIjD,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAIpC,AAAN,KAAK,CAAC,oBAAoB,CACL,UAAkB,EACH,cAAsB,EACjD,OAAwB;QAE/B,OAAO,IAAA,oCAAuB,EAAC,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;IAClF,CAAC;CACF,CAAA;AAXY,0EAA+B;AAIpC;IAHL,IAAA,wBAAS,EAAC,qFAAqF,CAAC;IAChG,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,oBAAY,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;IAE5F,mBAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAG,EAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,kBAAG,CAAC,CAAA;IAChC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;2EAGP;0CAVU,+BAA+B;IAF3C,IAAA,uBAAQ,GAAE;IACV,IAAA,4BAAa,EAAC,qBAAa,CAAC;GAChB,+BAA+B,CAW3C","sourcesContent":["import { Arg, Ctx, Directive, Int, Mutation, Resolver, UseMiddleware } from 'type-graphql'\n\nimport { installMasterChangeAxis, submitMasterChangeDraft, type MasterChangeAxis } from '@things-factory/ops-master'\nimport { ScalarObject, SpeakRefusals } from '@things-factory/shell'\n\nimport {\n assertWorkShiftApprovalInput,\n bindWorkShiftApproval,\n freezeWorkShiftDraft,\n publishWorkShiftRevision,\n workShiftApprovalInput,\n WorkShiftRefusal\n} from './work-shift-lifecycle'\n\n/**\n * The shift arrangement goes through the master-change approval ops-master owns (ADR-0086 decision 1,\n * amended 2026-10-10). Its revision steps live here, so this package registers its axis; ops-master\n * cannot import work-shift, which already depends on it.\n */\nexport const WORK_SHIFT_CHANGE: MasterChangeAxis = {\n axis: 'workShift',\n activity: 'WorkShiftChangeApproval',\n label: 'shift pattern change approval',\n description: 'Approve the complete shift arrangement, time zone and effective date',\n category: 'schedule',\n guide: [\n 'Compare the previous and proposed definition and check when the new definition will apply.',\n 'Approval publishes this exact revision. It does not change executions already recorded.',\n 'An empty approval line refuses submission. The author cannot approve their own change.'\n ],\n readiness: {\n stage: 'partial',\n tests: ['things-factory/packages/work-shift/test/work-shift-change-approval.db.test.cjs'],\n gaps: ['Holiday and location calendar revision closure requires separate work.'],\n notes: 'Declared regulated axes require this approval. Non-regulated publication records its policy and publisher. Recorded executions keep their exact revision.'\n },\n before: 'previous definition',\n after: 'proposed definition',\n issuedAs: '교대 편성 변경',\n caveat: 'The signed revision stays. Correct it with another approved revision; recorded executions keep their basis.',\n Refusal: WorkShiftRefusal as any,\n freeze: freezeWorkShiftDraft as any,\n approvalInput: workShiftApprovalInput as any,\n bind: bindWorkShiftApproval as any,\n assertApprovalInput: assertWorkShiftApprovalInput as any,\n publish: publishWorkShiftRevision as any\n}\n\ninstallMasterChangeAxis(WORK_SHIFT_CHANGE, 'work-shift')\n\n@Resolver()\n@UseMiddleware(SpeakRefusals)\nexport class WorkShiftChangeApprovalResolver {\n @Directive('@privilege(category: \"work-shift\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(() => ScalarObject, { description: 'Submit a shift arrangement draft for approval' })\n async submitWorkShiftDraft(\n @Arg('revisionId') revisionId: string,\n @Arg('editGeneration', () => Int) editGeneration: number,\n @Ctx() context: ResolverContext\n ) {\n return submitMasterChangeDraft('workShift', revisionId, editGeneration, context)\n }\n}\n"]}
|