@things-factory/work-shift 10.1.33 → 10.1.35
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/pages/work-shift.d.ts +18 -102
- package/dist-client/pages/work-shift.js +165 -781
- package/dist-client/pages/work-shift.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/controllers/work-shift-range.d.ts +25 -9
- package/dist-server/controllers/work-shift-range.js +49 -196
- package/dist-server/controllers/work-shift-range.js.map +1 -1
- package/dist-server/controllers/work-shift-schedule.d.ts +2 -0
- package/dist-server/controllers/work-shift-schedule.js +9 -18
- package/dist-server/controllers/work-shift-schedule.js.map +1 -1
- package/dist-server/service/index.d.ts +5 -2
- package/dist-server/service/index.js +3 -0
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/work-shift/index.d.ts +4 -4
- package/dist-server/service/work-shift/index.js +4 -3
- package/dist-server/service/work-shift/index.js.map +1 -1
- package/dist-server/service/work-shift/shift-occurrence.d.ts +19 -0
- package/dist-server/service/work-shift/shift-occurrence.js +34 -0
- package/dist-server/service/work-shift/shift-occurrence.js.map +1 -0
- package/dist-server/service/work-shift/work-shift-arrangement.d.ts +10 -0
- package/dist-server/service/work-shift/work-shift-arrangement.js +40 -0
- package/dist-server/service/work-shift/work-shift-arrangement.js.map +1 -0
- package/dist-server/service/work-shift/work-shift-content.d.ts +15 -0
- package/dist-server/service/work-shift/work-shift-content.js +55 -0
- package/dist-server/service/work-shift/work-shift-content.js.map +1 -0
- package/dist-server/service/work-shift/work-shift-lifecycle-resolver.d.ts +60 -0
- package/dist-server/service/work-shift/work-shift-lifecycle-resolver.js +77 -0
- package/dist-server/service/work-shift/work-shift-lifecycle-resolver.js.map +1 -0
- package/dist-server/service/work-shift/work-shift-lifecycle.d.ts +130 -0
- package/dist-server/service/work-shift/work-shift-lifecycle.js +508 -0
- package/dist-server/service/work-shift/work-shift-lifecycle.js.map +1 -0
- package/dist-server/service/work-shift/work-shift-mutation.js +9 -42
- package/dist-server/service/work-shift/work-shift-mutation.js.map +1 -1
- package/dist-server/service/work-shift/work-shift-query.js +30 -15
- package/dist-server/service/work-shift/work-shift-query.js.map +1 -1
- package/dist-server/service/work-shift/work-shift-revision-service.d.ts +29 -65
- package/dist-server/service/work-shift/work-shift-revision-service.js +67 -167
- package/dist-server/service/work-shift/work-shift-revision-service.js.map +1 -1
- package/dist-server/service/work-shift/work-shift-revision.d.ts +78 -62
- package/dist-server/service/work-shift/work-shift-revision.js +303 -82
- package/dist-server/service/work-shift/work-shift-revision.js.map +1 -1
- package/dist-server/service/work-shift/work-shift-type.d.ts +0 -5
- package/dist-server/service/work-shift/work-shift-type.js +1 -16
- package/dist-server/service/work-shift/work-shift-type.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/page/work-shift.ko.md +19 -3
- package/helps/page/work-shift.md +17 -9
- package/package.json +8 -5
- package/dist-server/service/work-shift/work-shift-revision-query.d.ts +0 -20
- package/dist-server/service/work-shift/work-shift-revision-query.js +0 -74
- package/dist-server/service/work-shift/work-shift-revision-query.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-shift-revision.js","sourceRoot":"","sources":["../../../server/service/work-shift/work-shift-revision.ts"],"names":[],"mappings":";;;;AAAA,qCAAgH;AAChH,+CAAoD;AAEpD,iDAA8C;AAC9C,yDAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAII,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CA+C7B,CAAA;AA/CY,8CAAiB;AAGnB;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;6CACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACb,cAAM;iDAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,QAA2B,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;;mDAC5C;AAKjB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;sCACO,IAAI;IAEnB;;;;OAIG;;wDANgB;AASnB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACZ,IAAI;IAElB;;;;;OAKG;;sDAPe;AAUlB;IAFC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC/B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;;iDACvD;AAIjC;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;IAEhB,yCAAyC;;oDAFzB;AAKhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;kDAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,QAA2B,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;;oDAC5C;4BA9CP,iBAAiB;IAH7B,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,0BAA0B,EAAE,CAAC,QAA2B,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7G,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;GACpE,iBAAiB,CA+C7B","sourcesContent":["import { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { Field, ID, ObjectType } from 'type-graphql'\n\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\n/**\n * 교대 편성 한 벌 — **지나간 것과 예고된 것.**\n *\n * ── 무엇이 사라지고 있었나 ─────────────────────────────────────────────────\n * `updateMultipleWorkShift` 는 그 도메인의 교대를 **전부 지우고 다시 넣는다.** 오탈자 하나를 고쳐도\n * 이전 편성이 데이터베이스에서 없어진다. 그래서 이런 물음에 답할 수 없었다.\n *\n * 6월 실적의 「주간」은 몇 시부터 몇 시였나\n * 3교대로 바꾼 것이 언제부터인가\n * 누가 언제 편성을 바꿨나\n *\n * ── 왜 유효기간 칸이 아니라 별도 표인가 ────────────────────────────────────\n * `WorkShift` 에 `effectiveStart`/`effectiveEnd` 를 다는 길도 있었다. 그러려면 유니크 인덱스 둘\n * (`[domain, name]` · `[domain, fromDate, fromTime]`)을 풀어야 한다 — 같은 이름이 기간별로 여러 행이어야\n * 하기 때문이다. **그 인덱스는 지금 잘못된 편성을 막고 있는 가드**이고, 다섯 드라이버에서 그것을\n * 풀면서 코드로 대신 지키는 것은 얻는 것보다 잃는 것이 크다.\n *\n * 별도 표는 `WorkShift` 를 **한 글자도 건드리지 않는다.** 지금 쓰는 편성은 그대로 그 표에 있고, 이\n * 표에는 **지나간 것만** 쌓인다. 그래서 두 곳이 어긋날 수가 없다.\n *\n * ── 행이 아니라 벌이 단위다 ────────────────────────────────────────────────\n * 교대는 한 줄씩 바뀌지 않는다. 「2교대에서 3교대로」처럼 **편성 전체가** 바뀐다. 그래서 이 표의 한 행이\n * 그때 쓰던 편성 한 벌이다.\n *\n * ── 지금 쓰는 편성은 여기 없다 ─────────────────────────────────────────────\n * 넣으면 같은 사실이 두 곳에 살고, 둘이 어긋나는 날이 온다. 지금 편성이 **언제부터**인지는 `WorkShift`\n * 행들의 `createdAt` 중 가장 이른 것이 말해 준다 — 전량 삭제 후 재삽입이라 그 값이 곧 설치 시각이다.\n *\n * ── 앞으로 쓸 편성도 여기 든다 ─────────────────────────────────────────────\n * 「다음 달 1일부터 3교대」를 미리 적어 둘 수 있어야 한다. 그러지 못하면 바뀌는 날 자정에 사람이 손으로\n * 고쳐야 하고, 그 시각에 도는 창이 어긋난다.\n *\n * 예고된 벌은 `effectiveFrom` 이 미래이고 `effectiveTo` 가 비어 있다. **바뀌는 날 무엇을 옮기는 일이\n * 없다** — 시각으로 고르기 때문에 그 시각이 지나면 저절로 그 벌이 답이 된다. 자정에 도는 일감을 두면\n * 그날 서버가 내려가 있을 때 편성이 안 바뀌고, 아무도 그것을 모른다.\n *\n * ```\n * 지나간 것 effectiveFrom ≤ effectiveTo ≤ 지금\n * 예고된 것 effectiveFrom > 지금 · effectiveTo 없음\n * ```\n */\n@Entity()\n@Index('ix_work_shift_revision_0', (revision: WorkShiftRevision) => [revision.domain, revision.effectiveFrom])\n@ObjectType({ description: 'A work shift arrangement that used to be in force' })\nexport class WorkShiftRevision {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((revision: WorkShiftRevision) => revision.domain)\n domainId?: string\n\n /** 이 편성을 쓰기 시작한 시각. */\n @Column()\n @Field()\n effectiveFrom: Date\n\n /**\n * 이 편성을 그만 쓴 시각. **예고된 벌은 비어 있다** — 아직 끝나지 않았다.\n *\n * 비어 있는 벌이 둘이면 어느 것이 답인지 갈리므로, 새 예고를 넣을 때 앞의 열린 벌을 닫는다.\n */\n @Column({ nullable: true })\n @Field({ nullable: true })\n effectiveTo?: Date\n\n /**\n * 그때 쓰던 교대 한 벌 — `[{ name, fromDate, fromTime, toDate, toTime }]`.\n *\n * `WorkShift` 를 가리키는 참조로 두지 않는다. 그 행들은 이미 지워졌고, 지워진 것을 가리키는 참조는\n * 아무것도 답하지 못한다.\n */\n @Column({ type: 'simple-json' })\n @Field(type => String, { description: 'the shift set that was in force, as JSON text' })\n shifts: Record<string, unknown>[]\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n /** 누가 바꿨나. 앞서는 전량 삭제 때문에 이것도 매번 사라졌다. */\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((revision: WorkShiftRevision) => revision.creator)\n creatorId?: string\n}\n"]}
|
|
1
|
+
{"version":3,"file":"work-shift-revision.js","sourceRoot":"","sources":["../../../server/service/work-shift/work-shift-revision.ts"],"names":[],"mappings":"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","sourcesContent":["import { Column, Entity, ForeignKey, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { WorkShiftArrangement } from './work-shift-arrangement'\nimport { MasterChangePolicy } from '@things-factory/ops-master'\n\n// Relations own the columns and RelationId exposes read-only identifiers.\n// Where a composite FK is declared, disable only the redundant single-column FK;\n// the database still enforces existence, domain and arrangement together.\n\n/** Content and the proposed effective date freeze together. Worklist owns the decision. */\n@Entity('work_shift_revisions')\n@Index('ix_arrangement_revision_subject', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_revision_list', ['domain', 'arrangement', 'createdAt'])\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftRevision', ['domain', 'arrangement', 'baseRevision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\n@Index('ix_arrangement_revision_number', ['domain', 'arrangement', 'revisionNumber'], { unique: true })\nexport class WorkShiftRevision {\n /** Human revision number within one identity; assigned once under the subject write lock. */\n @Column('int') revisionNumber: number\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: WorkShiftRevision) => row.policy)\n policyId: string\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftRevision) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftRevision) => row.arrangement)\n arrangementId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: true, createForeignKeyConstraints: false })\n baseRevision: WorkShiftRevision | null\n @RelationId((row: WorkShiftRevision) => row.baseRevision)\n baseRevisionId: string | null\n @Column('int') baseGeneration: number\n @Column('int', { default: 0 }) editGeneration: number\n @Column('text', { nullable: true }) description: string | null\n @Column() timezone: string\n @Column('simple-json') shifts: import('./work-shift-content').ShiftDefinition[]\n @Column({ type: Date }) effectiveFrom: Date\n @Column('text') reason: string\n @ManyToOne(() => User, { nullable: false })\n creator: User\n @RelationId((row: WorkShiftRevision) => row.creator)\n creatorId: string\n @Column({ type: Date }) createdAt: Date\n @Column({ type: Date, nullable: true }) frozenAt: Date | null\n @Column('varchar', { nullable: true }) contentHash: string | null\n /** Opaque product decision ID: the common master module does not depend on worklist. */\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n}\n\n/** An append-only generation of the complete schedule for one arrangement. */\n@Entity('work_shift_plan')\n@Index('ix_arrangement_plan_generation', ['domain', 'arrangement', 'generation'], { unique: true })\n@Index('ix_arrangement_plan_identity', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_plan_decision', ['activityInstanceId'], { unique: true })\n@Index('ix_arrangement_plan_publication', ['publishedRevision'], { unique: true })\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'publishedRevision'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\nexport class WorkShiftPlan {\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: WorkShiftPlan) => row.policy)\n policyId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n publishedRevision: WorkShiftRevision\n @RelationId((row: WorkShiftPlan) => row.publishedRevision)\n publishedRevisionId: string\n @Column('varchar') releaseKind: 'approved' | 'policy'\n @ManyToOne(() => User, { nullable: false }) publisher: User\n @RelationId((row: WorkShiftPlan) => row.publisher) publisherId: string\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftPlan) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftPlan) => row.arrangement)\n arrangementId: string\n @Column('int') generation: number\n @Column({ type: Date }) recordedAt: Date\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n @ManyToOne(() => User, { nullable: true })\n approver: User\n @RelationId((row: WorkShiftPlan) => row.approver)\n approverId: string\n @Column('varchar') submissionHash: string\n}\n\n@Entity('work_shift_segment')\n@Index('ix_arrangement_segment_lookup', ['domain', 'arrangement', 'plan', 'validFrom'])\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftPlan, ['domain', 'arrangement', 'plan'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'revision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class WorkShiftSegment {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftSegment) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftSegment) => row.arrangement)\n arrangementId: string\n @ManyToOne(() => WorkShiftPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: WorkShiftPlan\n @RelationId((row: WorkShiftSegment) => row.plan)\n planId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: WorkShiftRevision\n @RelationId((row: WorkShiftSegment) => row.revision)\n revisionId: string\n @Column({ type: Date }) validFrom: Date\n @Column({ type: Date, nullable: true }) validTo: Date | null\n}\n\n/** Permanent evidence of the selected revision, also the retroactivity interlock. */\n@Entity('work_shift_basis')\n@Index('ix_work_shift_basis_domain', ['domain', 'id'], { unique: true })\n@Index('ix_arrangement_basis_owner', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_basis_identity', ['domain', 'id', 'revision'], { unique: true })\n@Index('ix_arrangement_basis_record', ['domain', 'recordKey'], { unique: true })\n@Index('ix_arrangement_basis_time', ['domain', 'arrangement', 'businessTime'])\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftPlan, ['domain', 'arrangement', 'plan'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'revision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class WorkShiftBasis {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftBasis) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftBasis) => row.arrangement)\n arrangementId: string\n @Column('varchar') recordKey: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: WorkShiftRevision\n @RelationId((row: WorkShiftBasis) => row.revision)\n revisionId: string\n @ManyToOne(() => WorkShiftPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: WorkShiftPlan\n @RelationId((row: WorkShiftBasis) => row.plan)\n planId: string\n @Column('varchar') contentHash: string\n @Column({ type: Date }) businessTime: Date\n @Column({ type: Date }) resolvedAt: Date\n}\n\nexport const WORK_SHIFT_REVISION_ENTITIES = [\n WorkShiftRevision,\n WorkShiftPlan,\n WorkShiftSegment,\n WorkShiftBasis\n]\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { WorkShift, WorkShiftDateType } from './work-shift';
|
|
2
|
-
import { WorkShiftRevision } from './work-shift-revision';
|
|
3
2
|
export declare class WorkShiftPatch {
|
|
4
3
|
name: string;
|
|
5
4
|
description?: string;
|
|
@@ -19,10 +18,6 @@ export declare class WorkShiftList {
|
|
|
19
18
|
items: WorkShift[];
|
|
20
19
|
total: number;
|
|
21
20
|
}
|
|
22
|
-
export declare class WorkShiftRevisionList {
|
|
23
|
-
items: WorkShiftRevision[];
|
|
24
|
-
total: number;
|
|
25
|
-
}
|
|
26
21
|
export declare class WorkShiftInfo {
|
|
27
22
|
workDate?: string;
|
|
28
23
|
workShift?: string;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkShiftInfo = exports.
|
|
3
|
+
exports.WorkShiftInfo = exports.WorkShiftList = exports.WorkShiftPatch = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
6
|
const work_shift_1 = require("./work-shift");
|
|
7
|
-
const work_shift_revision_1 = require("./work-shift-revision");
|
|
8
7
|
let WorkShiftPatch = class WorkShiftPatch {
|
|
9
8
|
};
|
|
10
9
|
exports.WorkShiftPatch = WorkShiftPatch;
|
|
@@ -53,20 +52,6 @@ tslib_1.__decorate([
|
|
|
53
52
|
exports.WorkShiftList = WorkShiftList = tslib_1.__decorate([
|
|
54
53
|
(0, type_graphql_1.ObjectType)()
|
|
55
54
|
], WorkShiftList);
|
|
56
|
-
let WorkShiftRevisionList = class WorkShiftRevisionList {
|
|
57
|
-
};
|
|
58
|
-
exports.WorkShiftRevisionList = WorkShiftRevisionList;
|
|
59
|
-
tslib_1.__decorate([
|
|
60
|
-
(0, type_graphql_1.Field)(type => [work_shift_revision_1.WorkShiftRevision]),
|
|
61
|
-
tslib_1.__metadata("design:type", Array)
|
|
62
|
-
], WorkShiftRevisionList.prototype, "items", void 0);
|
|
63
|
-
tslib_1.__decorate([
|
|
64
|
-
(0, type_graphql_1.Field)(type => type_graphql_1.Int),
|
|
65
|
-
tslib_1.__metadata("design:type", Number)
|
|
66
|
-
], WorkShiftRevisionList.prototype, "total", void 0);
|
|
67
|
-
exports.WorkShiftRevisionList = WorkShiftRevisionList = tslib_1.__decorate([
|
|
68
|
-
(0, type_graphql_1.ObjectType)()
|
|
69
|
-
], WorkShiftRevisionList);
|
|
70
55
|
let WorkShiftInfo = class WorkShiftInfo {
|
|
71
56
|
};
|
|
72
57
|
exports.WorkShiftInfo = WorkShiftInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-shift-type.js","sourceRoot":"","sources":["../../../server/service/work-shift/work-shift-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAsF;AACtF,6CAA2D;
|
|
1
|
+
{"version":3,"file":"work-shift-type.js","sourceRoot":"","sources":["../../../server/service/work-shift/work-shift-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAsF;AACtF,6CAA2D;AAGpD,IAAM,cAAc,GAApB,MAAM,cAAc;CA2B1B,CAAA;AA3BY,wCAAc;AAEzB;IADC,IAAA,oBAAK,GAAE;;4CACI;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACN;AAGpB;IADC,IAAA,oBAAK,GAAE;;gDACmB;AAG3B;IADC,IAAA,oBAAK,GAAE;;gDACQ;AAGhB;IADC,IAAA,oBAAK,GAAE;;8CACiB;AAGzB;IADC,IAAA,oBAAK,GAAE;;8CACM;AASd;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,+EAA+E,EAAE,CAAC;;kDACrG;yBA1BR,cAAc;IAD1B,IAAA,wBAAS,GAAE;GACC,cAAc,CA2B1B;AAGM,IAAM,aAAa,GAAnB,MAAM,aAAa;CAMzB,CAAA;AANY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,sBAAS,CAAC,CAAC;;4CACT;AAGlB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;4CACN;wBALF,aAAa;IADzB,IAAA,yBAAU,GAAE;GACA,aAAa,CAMzB;AAGM,IAAM,aAAa,GAAnB,MAAM,aAAa;CAYzB,CAAA;AAZY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACR;AAGlB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACxB;AAGlB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACvB;wBAXR,aAAa;IADzB,IAAA,yBAAU,GAAE;GACA,aAAa,CAYzB","sourcesContent":["import { Field, ID, InputType, Int, ObjectType, registerEnumType } from 'type-graphql'\nimport { WorkShift, WorkShiftDateType } from './work-shift'\n\n@InputType()\nexport class WorkShiftPatch {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field()\n fromDate: WorkShiftDateType\n\n @Field()\n fromTime: string\n\n @Field()\n toDate: WorkShiftDateType\n\n @Field()\n toTime: string\n\n /**\n * Which weekdays this shift runs on — 0 Sunday … 6 Saturday, empty for every day.\n *\n * Nullable so that a client written before this field existed keeps working: an\n * absent value means every day, which is exactly what those clients meant.\n */\n @Field({ nullable: true, description: 'Weekdays this shift runs on as a CSV of 0(Sun)..6(Sat). Empty means every day' })\n daysOfWeek?: string\n}\n\n@ObjectType()\nexport class WorkShiftList {\n @Field(type => [WorkShift])\n items: WorkShift[]\n\n @Field(type => Int)\n total: number\n}\n\n@ObjectType()\nexport class WorkShiftInfo {\n @Field({ nullable: true })\n workDate?: string\n\n @Field({ nullable: true })\n workShift?: string\n\n @Field(type => [Date], { nullable: true })\n dateRange?: Date[]\n\n @Field(type => [Date], { nullable: true })\n shiftRange?: Date[]\n}\n"]}
|