@things-factory/compliance 10.1.255 → 10.1.257

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist-client/components/compliance-case-form.d.ts +11 -6
  2. package/dist-client/components/compliance-case-form.js +67 -88
  3. package/dist-client/components/compliance-case-form.js.map +1 -1
  4. package/dist-client/components/compliance-case-sheet.d.ts +14 -12
  5. package/dist-client/components/compliance-case-sheet.js +92 -133
  6. package/dist-client/components/compliance-case-sheet.js.map +1 -1
  7. package/dist-client/components/compliance-my-inventions.d.ts +3 -4
  8. package/dist-client/components/compliance-my-inventions.js +10 -30
  9. package/dist-client/components/compliance-my-inventions.js.map +1 -1
  10. package/dist-client/components/compliance-my-privacy-requests.d.ts +6 -6
  11. package/dist-client/components/compliance-my-privacy-requests.js +30 -66
  12. package/dist-client/components/compliance-my-privacy-requests.js.map +1 -1
  13. package/dist-client/components/compliance-my-reports.d.ts +3 -4
  14. package/dist-client/components/compliance-my-reports.js +19 -40
  15. package/dist-client/components/compliance-my-reports.js.map +1 -1
  16. package/dist-client/components/invention-report-form.d.ts +5 -4
  17. package/dist-client/components/invention-report-form.js +24 -45
  18. package/dist-client/components/invention-report-form.js.map +1 -1
  19. package/dist-client/components/my-trainings.d.ts +3 -5
  20. package/dist-client/components/my-trainings.js +20 -49
  21. package/dist-client/components/my-trainings.js.map +1 -1
  22. package/dist-client/components/seal-use-form.d.ts +9 -6
  23. package/dist-client/components/seal-use-form.js +60 -81
  24. package/dist-client/components/seal-use-form.js.map +1 -1
  25. package/dist-client/components/training-attendance-form.d.ts +6 -4
  26. package/dist-client/components/training-attendance-form.js +30 -50
  27. package/dist-client/components/training-attendance-form.js.map +1 -1
  28. package/dist-client/pages/regulation-detail.d.ts +17 -5
  29. package/dist-client/pages/regulation-detail.js +202 -133
  30. package/dist-client/pages/regulation-detail.js.map +1 -1
  31. package/dist-client/pages/regulations.d.ts +7 -5
  32. package/dist-client/pages/regulations.js +79 -68
  33. package/dist-client/pages/regulations.js.map +1 -1
  34. package/dist-client/regulation/regulation-fragments.js +5 -0
  35. package/dist-client/regulation/regulation-fragments.js.map +1 -1
  36. package/dist-client/regulation/regulation-guide.js +2 -1
  37. package/dist-client/regulation/regulation-guide.js.map +1 -1
  38. package/dist-client/tsconfig.tsbuildinfo +1 -1
  39. package/dist-client/words.js +2 -2
  40. package/dist-client/words.js.map +1 -1
  41. package/dist-server/index.d.ts +1 -0
  42. package/dist-server/index.js +1 -0
  43. package/dist-server/index.js.map +1 -1
  44. package/dist-server/service/compliance-case/compliance-case-query.js +1 -1
  45. package/dist-server/service/compliance-case/compliance-case-query.js.map +1 -1
  46. package/dist-server/service/compliance-case/compliance-case-rules.d.ts +1 -3
  47. package/dist-server/service/compliance-case/compliance-case-rules.js +2 -4
  48. package/dist-server/service/compliance-case/compliance-case-rules.js.map +1 -1
  49. package/dist-server/service/compliance-case/compliance-case-service.d.ts +3 -3
  50. package/dist-server/service/compliance-case/compliance-case-service.js +4 -6
  51. package/dist-server/service/compliance-case/compliance-case-service.js.map +1 -1
  52. package/dist-server/service/compliance-case/compliance-case-type.js +1 -1
  53. package/dist-server/service/compliance-case/compliance-case-type.js.map +1 -1
  54. package/dist-server/service/compliance-case/compliance-case.js +1 -1
  55. package/dist-server/service/compliance-case/compliance-case.js.map +1 -1
  56. package/dist-server/service/index.d.ts +1 -1
  57. package/dist-server/service/index.js +2 -1
  58. package/dist-server/service/index.js.map +1 -1
  59. package/dist-server/service/regulation/regulation-mutation.d.ts +1 -0
  60. package/dist-server/service/regulation/regulation-mutation.js +14 -0
  61. package/dist-server/service/regulation/regulation-mutation.js.map +1 -1
  62. package/dist-server/service/regulation/regulation-read.js +11 -2
  63. package/dist-server/service/regulation/regulation-read.js.map +1 -1
  64. package/dist-server/service/regulation/regulation-rules.d.ts +25 -6
  65. package/dist-server/service/regulation/regulation-rules.js +85 -29
  66. package/dist-server/service/regulation/regulation-rules.js.map +1 -1
  67. package/dist-server/service/regulation/regulation-service.d.ts +12 -0
  68. package/dist-server/service/regulation/regulation-service.js +48 -7
  69. package/dist-server/service/regulation/regulation-service.js.map +1 -1
  70. package/dist-server/service/regulation/regulation-type.d.ts +4 -0
  71. package/dist-server/service/regulation/regulation-type.js +16 -0
  72. package/dist-server/service/regulation/regulation-type.js.map +1 -1
  73. package/dist-server/service/regulation/regulation.d.ts +3 -1
  74. package/dist-server/service/regulation/regulation.js +12 -2
  75. package/dist-server/service/regulation/regulation.js.map +1 -1
  76. package/dist-server/tsconfig.tsbuildinfo +1 -1
  77. package/dist-server/work-doors.d.ts +1 -0
  78. package/dist-server/work-doors.js +15 -0
  79. package/dist-server/work-doors.js.map +1 -0
  80. package/package.json +17 -17
  81. package/translations/en.json +46 -14
  82. package/translations/es.json +46 -14
  83. package/translations/ja.json +46 -14
  84. package/translations/ko.json +46 -14
  85. package/translations/ms.json +46 -14
  86. package/translations/zh.json +46 -14
@@ -1 +1 @@
1
- {"version":3,"file":"regulation-service.js","sourceRoot":"","sources":["../../../server/service/regulation/regulation-service.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport { EntityManager, In } from 'typeorm'\n\nimport { decisionOf } from '@things-factory/accounting'\nimport { announce, announcementsOfSource } from '@things-factory/announcement'\nimport { Attachment, createAttachment } from '@things-factory/attachment-base'\nimport { invalidateHelpSource } from '@things-factory/help'\nimport { Refusal } from '@things-factory/shell'\nimport { abort, activityNamed, declaredDoor, issue, passWorkDoor, seatReader, WorkDoorNotUsed } from '@things-factory/worklist'\n\nimport { REGULATION_ADOPT_ACTIVITY } from '../../activities/regulation-activity-names'\nimport { todayIn } from '../common/employee-reader'\nimport { Regulation, RegulationClause, RegulationKind, RegulationProcedure, RegulationProcedureKind, RegulationVersion, RegulationVersionStatus } from './regulation'\nimport { adoptionRefusal, changeRefusal, clauseChanges, clausesOf, procedureRefusal, procedureWriteRefusal, regulationRefusal, standingOf } from './regulation-rules'\nimport { NewRegulation, NewRegulationProcedure, RegulationPatch, RegulationVersionPatch } from './regulation-type'\n\n/*\n * Writing a company rule and adopting its versions (ADR-0187 decisions 2-6). The one way a version is adopted: through\n * the work door `Compliance Regulation Adopt` - raised for approval where the domain names approvers, adopted at once\n * and written down where it names none. Adopting cuts its articles, tells the employees through the announcement of\n * the trigger `compliance.regulation-adopted`, and has the help index the articles again.\n */\n\n/** The papers of a procedure hang on it under this `refType` (attachment-base). */\nexport const REGULATION_PROCEDURE_REF_TYPE = 'RegulationProcedure'\n/** The help source of the articles (ADR-0187 decision 12). */\nexport const REGULATION_HELP_SOURCE = 'regulation'\n/** The announcement trigger of an adoption (ADR-0187 decision 6). */\nexport const REGULATION_ADOPTED_TRIGGER = 'compliance.regulation-adopted'\n\nconst text = (value: unknown) => (typeof value === 'string' && value.trim() ? value.trim() : null)\nconst NOT_FOUND = () => new Refusal('regulation-not-found', {}, 'the rule was not found. reload and try again.')\n\nasync function regulationOf(tx: EntityManager, domain: { id: string }, id: string): Promise<Regulation> {\n const row = await tx.getRepository(Regulation).findOne({ where: { id, domain: { id: domain.id } } as any })\n if (!row) throw NOT_FOUND()\n return row\n}\n\nexport async function versionOf(tx: EntityManager, domain: { id: string }, id: string): Promise<RegulationVersion> {\n const row = await tx.getRepository(RegulationVersion).findOne({ where: { id, domain: { id: domain.id } } as any, relations: ['regulation'] })\n if (!row) throw NOT_FOUND()\n return row\n}\n\n/** A new rule, with its first version to write. */\nexport async function createRegulation(input: NewRegulation, context: ResolverContext): Promise<Regulation> {\n const { domain, user, tx } = context.state\n const refusal = regulationRefusal(input)\n if (refusal) throw refusal\n const code = input.code.trim()\n if (await tx.getRepository(Regulation).findOne({ where: { domain: { id: domain.id }, code } as any }))\n throw new Refusal('regulation-code-taken', { code }, `the code ${code} is taken - give another`)\n const regulation = await tx.getRepository(Regulation).save({\n domain,\n code,\n name: input.name.trim(),\n kind: input.kind,\n topics: [...new Set((input.topics ?? []).map(one => one.trim()).filter(Boolean))],\n rank: input.rank ?? 0,\n creator: user,\n updater: user\n } as any)\n await tx.getRepository(RegulationVersion).save({ domain, regulation, version: 1, body: input.body ?? null, status: RegulationVersionStatus.DRAFT, creator: user, updater: user } as any)\n return regulation as Regulation\n}\n\n/** The name, topics and place of a rule; its kind only while none of its versions is adopted. */\nexport async function updateRegulation(id: string, patch: RegulationPatch, context: ResolverContext): Promise<Regulation> {\n const { domain, user, tx } = context.state\n const regulation = await regulationOf(tx, domain, id)\n if (patch.kind !== undefined && patch.kind !== regulation.kind) {\n const adopted = await tx.getRepository(RegulationVersion).count({ where: { regulation: { id }, status: In([RegulationVersionStatus.ADOPTED, RegulationVersionStatus.IN_APPROVAL]) } as any })\n if (adopted) throw new Refusal('regulation-kind-fixed', {}, 'the kind of a rule with an adopted version stays - its procedure was taken for it')\n }\n const refusal = regulationRefusal({ code: regulation.code, name: patch.name ?? regulation.name, kind: patch.kind ?? regulation.kind })\n if (refusal) throw refusal\n if (patch.name !== undefined) regulation.name = patch.name.trim()\n if (patch.kind !== undefined) regulation.kind = patch.kind\n if (patch.topics !== undefined) regulation.topics = [...new Set((patch.topics ?? []).map(one => one.trim()).filter(Boolean))]\n if (patch.rank !== undefined) regulation.rank = patch.rank ?? 0\n regulation.updater = user\n const saved = await tx.getRepository(Regulation).save(regulation)\n invalidateHelpSource(REGULATION_HELP_SOURCE, domain.id)\n return saved\n}\n\n/** A rule with no adopted version is deleted with its drafts; one adopted once is kept - its employees were told of it. */\nexport async function deleteRegulations(ids: string[], context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n for (const id of ids) {\n const regulation = await tx.getRepository(Regulation).findOne({ where: { id, domain: { id: domain.id } } as any })\n if (!regulation) continue\n const kept = await tx.getRepository(RegulationVersion).count({ where: { regulation: { id }, status: In([RegulationVersionStatus.ADOPTED, RegulationVersionStatus.IN_APPROVAL]) } as any })\n if (kept) throw new Refusal('regulation-adopted-kept', { name: regulation.name }, `${regulation.name} has a version adopted or in approval - a rule its employees were told of is kept`)\n await tx.getRepository(Regulation).delete(regulation.id)\n }\n return true\n}\n\n/** The next version to write, its text the latest version's. One is written at a time. */\nexport async function newRegulationVersion(regulationId: string, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const regulation = await regulationOf(tx, domain, regulationId)\n const versions = await tx.getRepository(RegulationVersion).find({ where: { regulation: { id: regulationId } } as any, order: { version: 'DESC' } as any })\n if (versions.some(one => one.status !== RegulationVersionStatus.ADOPTED))\n throw new Refusal('regulation-version-open', { name: regulation.name }, `${regulation.name} has a version being written or in approval - finish it first`)\n return await tx.getRepository(RegulationVersion).save({\n domain,\n regulation,\n version: (versions[0]?.version ?? 0) + 1,\n body: versions[0]?.body ?? null,\n status: RegulationVersionStatus.DRAFT,\n creator: user,\n updater: user\n } as any)\n}\n\n/** The text, day, summary, whether it is against the workers and how many workers - of a version being written. */\nexport async function updateRegulationVersion(id: string, patch: RegulationVersionPatch, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, id)\n const refusal = changeRefusal(version.status)\n if (refusal) throw refusal\n if (patch.body !== undefined) version.body = patch.body ?? null\n if (patch.effectiveOn !== undefined) version.effectiveOn = text(patch.effectiveOn)\n if (patch.changeSummary !== undefined) version.changeSummary = text(patch.changeSummary)\n if (patch.unfavourable !== undefined) version.unfavourable = patch.unfavourable\n if (patch.workersCount !== undefined) version.workersCount = patch.workersCount ?? null\n version.updater = user\n return await tx.getRepository(RegulationVersion).save(version)\n}\n\n/** A version being written is deleted; one put up or adopted is kept. */\nexport async function deleteRegulationVersion(id: string, context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n const version = await versionOf(tx, domain, id)\n if (version.status !== RegulationVersionStatus.DRAFT) throw new Refusal('regulation-version-kept', {}, 'a version put up or adopted is kept')\n await tx.getRepository(RegulationVersion).delete(version.id)\n return true\n}\n\n/** Records an opinion heard, a consent or a filing, with its papers. */\nexport async function recordRegulationProcedure(input: NewRegulationProcedure, files: FileUpload[] | undefined, context: ResolverContext): Promise<RegulationProcedure> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, input.versionId)\n const refusal = procedureWriteRefusal(version.status, input.kind) ?? procedureRefusal(input)\n if (refusal) throw refusal\n if (input.kind === RegulationProcedureKind.FILING && !files?.length) throw new Refusal('regulation-filing-paper-required', {}, 'attach the filing or its receipt')\n const saved = await tx.getRepository(RegulationProcedure).save({\n domain,\n version,\n kind: input.kind,\n day: input.day,\n method: text(input.method),\n workersCount: input.workersCount ?? null,\n consentCount: input.kind === RegulationProcedureKind.CONSENT ? input.consentCount : null,\n notes: text(input.notes),\n creator: user\n } as any)\n for (const file of files ?? []) await createAttachment(null, { attachment: { file, refType: REGULATION_PROCEDURE_REF_TYPE, refBy: saved.id } } as any, context)\n return saved as RegulationProcedure\n}\n\n/** A procedure of a version being written is taken off; once put up it is the evidence and stays. */\nexport async function deleteRegulationProcedure(id: string, context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n const row = await tx.getRepository(RegulationProcedure).findOne({ where: { id, domain: { id: domain.id } } as any })\n if (!row) return true\n const version = await versionOf(tx, domain, row.versionId!)\n if (version.status !== RegulationVersionStatus.DRAFT) throw new Refusal('regulation-procedure-fixed', {}, 'the procedure of a version put up or adopted stays as it was')\n const files = await tx.getRepository(Attachment).find({ where: { domain: { id: domain.id }, refType: REGULATION_PROCEDURE_REF_TYPE, refBy: id } as any })\n if (files.length) await tx.getRepository(Attachment).delete(files.map(one => one.id))\n await tx.getRepository(RegulationProcedure).delete(id)\n return true\n}\n\n/** The procedures of versions, each with how many papers it carries. */\nexport async function proceduresOf(tx: EntityManager, domain: { id: string }, versionIds: string[]): Promise<(RegulationProcedure & { files: number })[]> {\n if (!versionIds.length) return []\n const rows = await tx.getRepository(RegulationProcedure).find({ where: { domain: { id: domain.id }, version: { id: In(versionIds) } } as any, order: { day: 'ASC' } as any })\n const files = rows.length ? await tx.getRepository(Attachment).find({ where: { domain: { id: domain.id }, refType: REGULATION_PROCEDURE_REF_TYPE, refBy: In(rows.map(one => one.id)) } as any }) : []\n return rows.map(one => Object.assign(one, { files: files.filter(file => file.refBy === one.id).length }))\n}\n\n/** The version adopted before this one, whose articles it is told against. */\nexport async function previousAdopted(tx: EntityManager, version: RegulationVersion): Promise<RegulationVersion | null> {\n const adopted = await tx.getRepository(RegulationVersion).find({ where: { regulation: { id: version.regulationId }, status: RegulationVersionStatus.ADOPTED } as any, order: { version: 'DESC' } as any })\n return adopted.find(one => one.version < version.version) ?? null\n}\n\n/** Puts a version up for adoption - or adopts it at once where the domain names no approver (decision 5). */\nexport async function submitRegulationVersion(id: string, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, id)\n if (version.status !== RegulationVersionStatus.DRAFT) throw new Refusal('regulation-not-draft', {}, 'only a version being written is put up')\n const regulation = version.regulation!\n const procedures = await proceduresOf(tx, domain, [version.id])\n const refusal = adoptionRefusal({ kind: regulation.kind, body: version.body, effectiveOn: version.effectiveOn, unfavourable: version.unfavourable }, procedures, todayIn(domain))\n if (refusal) throw refusal\n\n const door = declaredDoor(REGULATION_ADOPT_ACTIVITY)!\n const carrier = await activityNamed(REGULATION_ADOPT_ACTIVITY, context)\n const notUsed = !!(await tx.getRepository(WorkDoorNotUsed).findOne({ where: { domain: { id: domain.id }, doorName: REGULATION_ADOPT_ACTIVITY } as any }))\n const verdict = await passWorkDoor({ door, activity: carrier, subject: { kind: 'RegulationVersion', id: version.id }, notUsed }, { tx, domain, user, seats: seatReader(tx) })\n if (verdict.go === 'refuse') throw verdict.refusal\n if (verdict.go === 'run') return await adopt(version, context)\n if (!carrier) throw new Refusal('regulation-approval-not-installed', { form: REGULATION_ADOPT_ACTIVITY }, `the approval '${REGULATION_ADOPT_ACTIVITY}' is not installed in this domain`)\n\n const before = await previousAdopted(tx, version)\n const changes = clauseChanges(before ? clausesOf(before.body) : [], clausesOf(version.body))\n const words: Record<string, string> = { ADDED: '신설', CHANGED: '개정', REMOVED: '삭제' }\n version.status = RegulationVersionStatus.IN_APPROVAL\n version.adoptionNote = null\n version.updater = user\n const saved = await tx.getRepository(RegulationVersion).save(version)\n const headline = `${regulation.name} 제${version.version}판 · 시행 ${version.effectiveOn}`\n const instance = await issue(\n {\n name: headline,\n description: version.changeSummary ?? '',\n activityId: carrier.id,\n approvalLine: carrier.approvalLine,\n input: {\n versionId: saved.id,\n regulation: regulation.name,\n requester: user.name ?? '',\n sourceHref: `regulation-detail?id=${regulation.id}&version=${saved.id}`,\n headline,\n reason: [\n ...(version.changeSummary ? [`바뀐 곳: ${version.changeSummary}`] : []),\n ...(changes.length ? [`조문: ${changes.map(one => `제${one.number}조 ${words[one.change]}`).join(', ')}`] : []),\n `불리한 변경: ${version.unfavourable ? '예' : '아니오'}`,\n ...procedures.map(one => `${{ OPINION: '의견 청취', CONSENT: '동의', FILING: '신고' }[one.kind]} ${one.day}${one.kind === 'CONSENT' ? ` · ${one.consentCount}/${one.workersCount}` : ''} · 첨부 ${one.files}`)\n ],\n consequence: `승인하면 ${regulation.name} 제${version.version}판이 채택되어 ${version.effectiveOn}부터 시행됩니다`\n },\n threadsMin: 1,\n threadsMax: 1,\n requireApproval: true\n } as any,\n context\n )\n saved.activityInstanceId = instance.id\n return await tx.getRepository(RegulationVersion).save(saved)\n}\n\n/** Takes back a version in approval - it is being written again. */\nexport async function withdrawRegulationVersion(id: string, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, id)\n if (version.status !== RegulationVersionStatus.IN_APPROVAL) throw new Refusal('regulation-not-in-approval', {}, 'only a version in approval is taken back')\n if (version.activityInstanceId) await abort({ id: version.activityInstanceId, reason: '올린 사람이 회수함' } as any, context)\n version.status = RegulationVersionStatus.DRAFT\n version.activityInstanceId = null\n version.updater = user\n return await tx.getRepository(RegulationVersion).save(version)\n}\n\n/**\n * What an approver's decision does to the version - worklist calls it on every state change of the instance; a decision\n * lands only on the version still waiting on that very instance. Rejected or withdrawn, it is written again.\n */\nexport async function decideRegulationVersion(instance: { id: string; state: any; input?: any }, causedBy: readonly { state?: any }[], context: ResolverContext) {\n const { domain, tx } = context.state\n const id = instance.input?.versionId\n if (!id) return\n const version = await tx.getRepository(RegulationVersion).findOne({ where: { id, domain: { id: domain.id } } as any, relations: ['regulation'] })\n if (!version) return\n const decision = decisionOf(\n { id: instance.id, state: String(instance.state) },\n causedBy.map(one => ({ state: String(one.state) })),\n { status: version.status === RegulationVersionStatus.IN_APPROVAL ? 'SUBMITTED' : (version.status as any), activityInstanceId: version.activityInstanceId }\n )\n if (!decision) return\n if (decision === 'APPROVED') return void (await adopt(version, context))\n version.status = RegulationVersionStatus.DRAFT\n version.activityInstanceId = null\n await tx.getRepository(RegulationVersion).save(version)\n}\n\n/**\n * Adopts a version: its effective day must not have passed by the day it is decided - an approval that ended late leaves\n * it to be put up again with a new day. Its articles are cut and kept, the employees are told, the help indexes again.\n */\nasync function adopt(version: RegulationVersion, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const today = todayIn(domain)\n if (!version.effectiveOn || version.effectiveOn < today) {\n version.status = RegulationVersionStatus.DRAFT\n version.activityInstanceId = null\n version.adoptionNote = `시행일 ${version.effectiveOn ?? ''}이(가) 결재가 끝난 ${today}보다 앞서 채택되지 않았습니다 — 시행일을 고쳐 다시 올리세요`\n return await tx.getRepository(RegulationVersion).save(version)\n }\n version.status = RegulationVersionStatus.ADOPTED\n version.adoptedAt = new Date()\n version.adoptedBy = user\n version.adoptionNote = null\n const saved = await tx.getRepository(RegulationVersion).save(version)\n const clauses = clausesOf(saved.body)\n await tx.getRepository(RegulationClause).delete({ version: { id: saved.id } } as any)\n for (const [rank, one] of clauses.entries()) await tx.getRepository(RegulationClause).save({ domain, version: saved, rank, ...one } as any)\n\n const regulation = version.regulation!\n const announcement = await announce(context, {\n trigger: REGULATION_ADOPTED_TRIGGER,\n sourceKind: 'RegulationVersion',\n sourceId: saved.id,\n title: `${regulation.name} 제${saved.version}판 시행 안내 (${saved.effectiveOn})`,\n body: [`**${regulation.name}** 제${saved.version}판이 채택되어 **${saved.effectiveOn}**부터 시행됩니다.`, saved.changeSummary ? `\\n바뀐 곳: ${saved.changeSummary}` : ''].join(''),\n links: [{ label: regulation.name, url: `regulations?regulation=${encodeURIComponent(regulation.code)}&version=${saved.id}` }]\n })\n if (announcement) {\n saved.announcementId = announcement.id\n await tx.getRepository(RegulationVersion).save(saved)\n }\n invalidateHelpSource(REGULATION_HELP_SOURCE, domain.id)\n return saved\n}\n\n/** The announcement of each version, by version - drafts too, the keeper reads whether it went out. */\nexport async function announcementsOfVersions(tx: EntityManager, domain: { id: string }, versionIds: string[]) {\n const rows = await announcementsOfSource(domain, 'RegulationVersion', versionIds, tx)\n return new Map(rows.map(one => [one.sourceId!, one]))\n}\n\n/** Every regulation of a kind whose version in force has no filing - a work rule must be filed (근로기준법 §93). */\nexport async function regulationsWithoutFiling(manager: EntityManager, domain: { id: string }, today: string) {\n const regulations = await manager.getRepository(Regulation).find({ where: { domain: { id: domain.id }, kind: In([RegulationKind.WORK_RULES, RegulationKind.WORK_RULES_ANNEX]) } as any })\n if (!regulations.length) return []\n const versions = await manager.getRepository(RegulationVersion).find({ where: { regulation: { id: In(regulations.map(one => one.id)) }, status: RegulationVersionStatus.ADOPTED } as any })\n const out: { regulation: Regulation; version: RegulationVersion }[] = []\n for (const regulation of regulations) {\n const { inForce } = standingOf(versions.filter(one => one.regulationId === regulation.id), today)\n if (!inForce) continue\n const filed = await manager.getRepository(RegulationProcedure).count({ where: { version: { id: inForce.id }, kind: RegulationProcedureKind.FILING } as any })\n if (!filed) out.push({ regulation, version: inForce })\n }\n return out\n}\n"]}
1
+ {"version":3,"file":"regulation-service.js","sourceRoot":"","sources":["../../../server/service/regulation/regulation-service.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport { EntityManager, In } from 'typeorm'\n\nimport { decisionOf } from '@things-factory/accounting'\nimport { announce, announcementsOfSource } from '@things-factory/announcement'\nimport { Attachment, createAttachment } from '@things-factory/attachment-base'\nimport { invalidateHelpSource } from '@things-factory/help'\nimport { Refusal } from '@things-factory/shell'\nimport { abort, activityNamed, declaredDoor, issue, passWorkDoor, seatReader, WorkDoorNotUsed } from '@things-factory/worklist'\n\nimport { REGULATION_ADOPT_ACTIVITY } from '../../activities/regulation-activity-names'\nimport { todayIn } from '../common/employee-reader'\nimport { Regulation, RegulationClause, RegulationKind, RegulationProcedure, RegulationProcedureKind, RegulationVersion, RegulationVersionStatus } from './regulation'\nimport { adoptionRefusal, changeRefusal, clauseChanges, clausesOf, inForceRefusal, procedureRefusal, procedureWriteRefusal, regulationRefusal, standingOf } from './regulation-rules'\nimport { NewRegulation, NewRegulationProcedure, RegulationPatch, RegulationVersionPatch } from './regulation-type'\n\n/*\n * Writing a company rule and adopting its versions (ADR-0187 decisions 2-6). The one way a version is adopted: through\n * the work door `Compliance Regulation Adopt` - raised for approval where the domain names approvers, adopted at once\n * and written down where it names none. Adopting cuts its articles, tells the employees through the announcement of\n * the trigger `compliance.regulation-adopted`, and has the help index the articles again. A rule in force before the\n * system is registered as it stands instead - its first version, with its original attached (amendment 2).\n */\n\n/** The papers of a procedure hang on it under this `refType` (attachment-base). */\nexport const REGULATION_PROCEDURE_REF_TYPE = 'RegulationProcedure'\n/** The original of a version registered as in force hangs on the version under this `refType`. */\nexport const REGULATION_ORIGINAL_REF_TYPE = 'RegulationVersion'\n/** The help source of the articles (ADR-0187 decision 12). */\nexport const REGULATION_HELP_SOURCE = 'regulation'\n/** The announcement trigger of an adoption (ADR-0187 decision 6). */\nexport const REGULATION_ADOPTED_TRIGGER = 'compliance.regulation-adopted'\n\nconst text = (value: unknown) => (typeof value === 'string' && value.trim() ? value.trim() : null)\nconst NOT_FOUND = () => new Refusal('regulation-not-found', {}, 'the rule was not found. reload and try again.')\n\nasync function regulationOf(tx: EntityManager, domain: { id: string }, id: string): Promise<Regulation> {\n const row = await tx.getRepository(Regulation).findOne({ where: { id, domain: { id: domain.id } } as any })\n if (!row) throw NOT_FOUND()\n return row\n}\n\nexport async function versionOf(tx: EntityManager, domain: { id: string }, id: string): Promise<RegulationVersion> {\n const row = await tx.getRepository(RegulationVersion).findOne({ where: { id, domain: { id: domain.id } } as any, relations: ['regulation'] })\n if (!row) throw NOT_FOUND()\n return row\n}\n\n/** A new rule, with its first version to write. */\nexport async function createRegulation(input: NewRegulation, context: ResolverContext): Promise<Regulation> {\n const { domain, user, tx } = context.state\n const refusal = regulationRefusal(input)\n if (refusal) throw refusal\n const code = input.code.trim()\n if (await tx.getRepository(Regulation).findOne({ where: { domain: { id: domain.id }, code } as any }))\n throw new Refusal('regulation-code-taken', { code }, `the code ${code} is taken - give another`)\n const regulation = await tx.getRepository(Regulation).save({\n domain,\n code,\n name: input.name.trim(),\n kind: input.kind,\n topics: [...new Set((input.topics ?? []).map(one => one.trim()).filter(Boolean))],\n rank: input.rank ?? 0,\n creator: user,\n updater: user\n } as any)\n await tx.getRepository(RegulationVersion).save({ domain, regulation, version: 1, body: input.body ?? null, status: RegulationVersionStatus.DRAFT, creator: user, updater: user } as any)\n return regulation as Regulation\n}\n\n/** The name, topics and place of a rule; its kind only while none of its versions is adopted. */\nexport async function updateRegulation(id: string, patch: RegulationPatch, context: ResolverContext): Promise<Regulation> {\n const { domain, user, tx } = context.state\n const regulation = await regulationOf(tx, domain, id)\n if (patch.kind !== undefined && patch.kind !== regulation.kind) {\n const adopted = await tx.getRepository(RegulationVersion).count({ where: { regulation: { id }, status: In([RegulationVersionStatus.ADOPTED, RegulationVersionStatus.IN_APPROVAL]) } as any })\n if (adopted) throw new Refusal('regulation-kind-fixed', {}, 'the kind of a rule with an adopted version stays - its procedure was taken for it')\n }\n const refusal = regulationRefusal({ code: regulation.code, name: patch.name ?? regulation.name, kind: patch.kind ?? regulation.kind })\n if (refusal) throw refusal\n if (patch.name !== undefined) regulation.name = patch.name.trim()\n if (patch.kind !== undefined) regulation.kind = patch.kind\n if (patch.topics !== undefined) regulation.topics = [...new Set((patch.topics ?? []).map(one => one.trim()).filter(Boolean))]\n if (patch.rank !== undefined) regulation.rank = patch.rank ?? 0\n regulation.updater = user\n const saved = await tx.getRepository(Regulation).save(regulation)\n invalidateHelpSource(REGULATION_HELP_SOURCE, domain.id)\n return saved\n}\n\n/** A rule with no adopted version is deleted with its drafts; one adopted once is kept - its employees were told of it. */\nexport async function deleteRegulations(ids: string[], context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n for (const id of ids) {\n const regulation = await tx.getRepository(Regulation).findOne({ where: { id, domain: { id: domain.id } } as any })\n if (!regulation) continue\n const kept = await tx.getRepository(RegulationVersion).count({ where: { regulation: { id }, status: In([RegulationVersionStatus.ADOPTED, RegulationVersionStatus.IN_APPROVAL]) } as any })\n if (kept) throw new Refusal('regulation-adopted-kept', { name: regulation.name }, `${regulation.name} has a version adopted or in approval - a rule its employees were told of is kept`)\n await tx.getRepository(Regulation).delete(regulation.id)\n }\n return true\n}\n\n/** The next version to write, its text the latest version's. One is written at a time. */\nexport async function newRegulationVersion(regulationId: string, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const regulation = await regulationOf(tx, domain, regulationId)\n const versions = await tx.getRepository(RegulationVersion).find({ where: { regulation: { id: regulationId } } as any, order: { version: 'DESC' } as any })\n if (versions.some(one => one.status !== RegulationVersionStatus.ADOPTED))\n throw new Refusal('regulation-version-open', { name: regulation.name }, `${regulation.name} has a version being written or in approval - finish it first`)\n return await tx.getRepository(RegulationVersion).save({\n domain,\n regulation,\n version: (versions[0]?.version ?? 0) + 1,\n body: versions[0]?.body ?? null,\n status: RegulationVersionStatus.DRAFT,\n creator: user,\n updater: user\n } as any)\n}\n\n/** The text, day, summary, whether it is against the workers and how many workers - of a version being written. */\nexport async function updateRegulationVersion(id: string, patch: RegulationVersionPatch, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, id)\n const refusal = changeRefusal(version.status)\n if (refusal) throw refusal\n if (patch.body !== undefined) version.body = patch.body ?? null\n if (patch.effectiveOn !== undefined) version.effectiveOn = text(patch.effectiveOn)\n if (patch.changeSummary !== undefined) version.changeSummary = text(patch.changeSummary)\n if (patch.unfavourable !== undefined) version.unfavourable = patch.unfavourable\n if (patch.workersCount !== undefined) version.workersCount = patch.workersCount ?? null\n version.updater = user\n return await tx.getRepository(RegulationVersion).save(version)\n}\n\n/** A version being written is deleted; one put up or adopted is kept. */\nexport async function deleteRegulationVersion(id: string, context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n const version = await versionOf(tx, domain, id)\n if (version.status !== RegulationVersionStatus.DRAFT) throw new Refusal('regulation-version-kept', {}, 'a version put up or adopted is kept')\n await tx.getRepository(RegulationVersion).delete(version.id)\n return true\n}\n\n/** Records an opinion heard, a consent or a filing, with its papers. */\nexport async function recordRegulationProcedure(input: NewRegulationProcedure, files: FileUpload[] | undefined, context: ResolverContext): Promise<RegulationProcedure> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, input.versionId)\n const refusal = procedureWriteRefusal(version.status, input.kind) ?? procedureRefusal(input)\n if (refusal) throw refusal\n if (input.kind === RegulationProcedureKind.FILING && !files?.length) throw new Refusal('regulation-filing-paper-required', {}, 'attach the filing or its receipt')\n const saved = await tx.getRepository(RegulationProcedure).save({\n domain,\n version,\n kind: input.kind,\n day: input.day,\n method: text(input.method),\n workersCount: input.workersCount ?? null,\n consentCount: input.kind === RegulationProcedureKind.CONSENT ? input.consentCount : null,\n notes: text(input.notes),\n creator: user\n } as any)\n for (const file of files ?? []) await createAttachment(null, { attachment: { file, refType: REGULATION_PROCEDURE_REF_TYPE, refBy: saved.id } } as any, context)\n return saved as RegulationProcedure\n}\n\n/** A procedure of a version being written is taken off; once put up it is the evidence and stays. */\nexport async function deleteRegulationProcedure(id: string, context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n const row = await tx.getRepository(RegulationProcedure).findOne({ where: { id, domain: { id: domain.id } } as any })\n if (!row) return true\n const version = await versionOf(tx, domain, row.versionId!)\n if (version.status !== RegulationVersionStatus.DRAFT) throw new Refusal('regulation-procedure-fixed', {}, 'the procedure of a version put up or adopted stays as it was')\n const files = await tx.getRepository(Attachment).find({ where: { domain: { id: domain.id }, refType: REGULATION_PROCEDURE_REF_TYPE, refBy: id } as any })\n if (files.length) await tx.getRepository(Attachment).delete(files.map(one => one.id))\n await tx.getRepository(RegulationProcedure).delete(id)\n return true\n}\n\n/** The procedures of versions, each with how many papers it carries. */\nexport async function proceduresOf(tx: EntityManager, domain: { id: string }, versionIds: string[]): Promise<(RegulationProcedure & { files: number })[]> {\n if (!versionIds.length) return []\n const rows = await tx.getRepository(RegulationProcedure).find({ where: { domain: { id: domain.id }, version: { id: In(versionIds) } } as any, order: { day: 'ASC' } as any })\n const files = rows.length ? await tx.getRepository(Attachment).find({ where: { domain: { id: domain.id }, refType: REGULATION_PROCEDURE_REF_TYPE, refBy: In(rows.map(one => one.id)) } as any }) : []\n return rows.map(one => Object.assign(one, { files: files.filter(file => file.refBy === one.id).length }))\n}\n\n/** The version adopted before this one, whose articles it is told against. */\nexport async function previousAdopted(tx: EntityManager, version: RegulationVersion): Promise<RegulationVersion | null> {\n const adopted = await tx.getRepository(RegulationVersion).find({ where: { regulation: { id: version.regulationId }, status: RegulationVersionStatus.ADOPTED } as any, order: { version: 'DESC' } as any })\n return adopted.find(one => one.version < version.version) ?? null\n}\n\n/** Puts a version up for adoption - or adopts it at once where the domain names no approver (decision 5). */\nexport async function submitRegulationVersion(id: string, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, id)\n if (version.status !== RegulationVersionStatus.DRAFT) throw new Refusal('regulation-not-draft', {}, 'only a version being written is put up')\n const regulation = version.regulation!\n const procedures = await proceduresOf(tx, domain, [version.id])\n const refusal = adoptionRefusal({ kind: regulation.kind, body: version.body, effectiveOn: version.effectiveOn, unfavourable: version.unfavourable }, procedures, todayIn(domain))\n if (refusal) throw refusal\n\n const door = declaredDoor(REGULATION_ADOPT_ACTIVITY)!\n const carrier = await activityNamed(REGULATION_ADOPT_ACTIVITY, context)\n const notUsed = !!(await tx.getRepository(WorkDoorNotUsed).findOne({ where: { domain: { id: domain.id }, doorName: REGULATION_ADOPT_ACTIVITY } as any }))\n const verdict = await passWorkDoor({ door, activity: carrier, subject: { kind: 'RegulationVersion', id: version.id }, notUsed }, { tx, domain, user, seats: seatReader(tx) })\n if (verdict.go === 'refuse') throw verdict.refusal\n if (verdict.go === 'run') return await adopt(version, context)\n if (!carrier) throw new Refusal('regulation-approval-not-installed', { form: REGULATION_ADOPT_ACTIVITY }, `the approval '${REGULATION_ADOPT_ACTIVITY}' is not installed in this domain`)\n\n const before = await previousAdopted(tx, version)\n const changes = clauseChanges(before ? clausesOf(before.body) : [], clausesOf(version.body))\n const words: Record<string, string> = { ADDED: '신설', CHANGED: '개정', REMOVED: '삭제' }\n version.status = RegulationVersionStatus.IN_APPROVAL\n version.adoptionNote = null\n version.updater = user\n const saved = await tx.getRepository(RegulationVersion).save(version)\n const headline = `${regulation.name} 제${version.version}판 · 시행 ${version.effectiveOn}`\n const instance = await issue(\n {\n name: headline,\n description: version.changeSummary ?? '',\n activityId: carrier.id,\n approvalLine: carrier.approvalLine,\n input: {\n versionId: saved.id,\n regulation: regulation.name,\n requester: user.name ?? '',\n sourceHref: `regulation-detail?id=${regulation.id}&version=${saved.id}`,\n headline,\n reason: [\n ...(version.changeSummary ? [`바뀐 곳: ${version.changeSummary}`] : []),\n ...(changes.length ? [`조문: ${changes.map(one => `${one.heading} ${words[one.change]}`).join(', ')}`] : []),\n `불리한 변경: ${version.unfavourable ? '예' : '아니오'}`,\n ...procedures.map(one => `${{ OPINION: '의견 청취', CONSENT: '동의', FILING: '신고' }[one.kind]} ${one.day}${one.kind === 'CONSENT' ? ` · ${one.consentCount}/${one.workersCount}` : ''} · 첨부 ${one.files}`)\n ],\n consequence: `승인하면 ${regulation.name} 제${version.version}판이 채택되어 ${version.effectiveOn}부터 시행됩니다`\n },\n threadsMin: 1,\n threadsMax: 1,\n requireApproval: true\n } as any,\n context\n )\n saved.activityInstanceId = instance.id\n return await tx.getRepository(RegulationVersion).save(saved)\n}\n\n/**\n * Registers the first version of a rule as in force already (decision 3, amendment 2): adopted as it stands from its own\n * day, its original attached, its articles cut and indexed - with no approval, since nothing is decided, and no\n * announcement, since the employees live under it already.\n */\nexport async function registerRegulationInForce(id: string, files: FileUpload[] | undefined, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, id)\n const adoptedBefore = await tx.getRepository(RegulationVersion).count({\n where: { regulation: { id: version.regulationId }, status: In([RegulationVersionStatus.ADOPTED, RegulationVersionStatus.IN_APPROVAL]) } as any\n })\n const refusal = inForceRefusal(version, adoptedBefore, files?.length ?? 0, todayIn(domain))\n if (refusal) throw refusal\n version.status = RegulationVersionStatus.ADOPTED\n version.registeredInForce = true\n version.adoptedAt = new Date()\n version.adoptedBy = user\n version.adoptionNote = null\n version.updater = user\n const saved = await tx.getRepository(RegulationVersion).save(version)\n await keepClauses(saved, context)\n for (const file of files ?? []) await createAttachment(null, { attachment: { file, refType: REGULATION_ORIGINAL_REF_TYPE, refBy: saved.id } } as any, context)\n invalidateHelpSource(REGULATION_HELP_SOURCE, domain.id)\n return saved\n}\n\n/** How many originals each version carries. */\nexport async function originalsOf(tx: EntityManager, domain: { id: string }, versionIds: string[]): Promise<Map<string, number>> {\n const rows = versionIds.length ? await tx.getRepository(Attachment).find({ where: { domain: { id: domain.id }, refType: REGULATION_ORIGINAL_REF_TYPE, refBy: In(versionIds) } as any }) : []\n return rows.reduce((counts, one) => counts.set(one.refBy!, (counts.get(one.refBy!) ?? 0) + 1), new Map<string, number>())\n}\n\n/** The articles of an adopted version, cut from its text and kept. */\nasync function keepClauses(version: RegulationVersion, context: ResolverContext) {\n const { domain, tx } = context.state\n await tx.getRepository(RegulationClause).delete({ version: { id: version.id } } as any)\n for (const [rank, one] of clausesOf(version.body).entries()) await tx.getRepository(RegulationClause).save({ domain, version, rank, ...one } as any)\n}\n\n/** Takes back a version in approval - it is being written again. */\nexport async function withdrawRegulationVersion(id: string, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const version = await versionOf(tx, domain, id)\n if (version.status !== RegulationVersionStatus.IN_APPROVAL) throw new Refusal('regulation-not-in-approval', {}, 'only a version in approval is taken back')\n if (version.activityInstanceId) await abort({ id: version.activityInstanceId, reason: '올린 사람이 회수함' } as any, context)\n version.status = RegulationVersionStatus.DRAFT\n version.activityInstanceId = null\n version.updater = user\n return await tx.getRepository(RegulationVersion).save(version)\n}\n\n/**\n * What an approver's decision does to the version - worklist calls it on every state change of the instance; a decision\n * lands only on the version still waiting on that very instance. Rejected or withdrawn, it is written again.\n */\nexport async function decideRegulationVersion(instance: { id: string; state: any; input?: any }, causedBy: readonly { state?: any }[], context: ResolverContext) {\n const { domain, tx } = context.state\n const id = instance.input?.versionId\n if (!id) return\n const version = await tx.getRepository(RegulationVersion).findOne({ where: { id, domain: { id: domain.id } } as any, relations: ['regulation'] })\n if (!version) return\n const decision = decisionOf(\n { id: instance.id, state: String(instance.state) },\n causedBy.map(one => ({ state: String(one.state) })),\n { status: version.status === RegulationVersionStatus.IN_APPROVAL ? 'SUBMITTED' : (version.status as any), activityInstanceId: version.activityInstanceId }\n )\n if (!decision) return\n if (decision === 'APPROVED') return void (await adopt(version, context))\n version.status = RegulationVersionStatus.DRAFT\n version.activityInstanceId = null\n await tx.getRepository(RegulationVersion).save(version)\n}\n\n/**\n * Adopts a version: its effective day must not have passed by the day it is decided - an approval that ended late leaves\n * it to be put up again with a new day. Its articles are cut and kept, the employees are told, the help indexes again.\n */\nasync function adopt(version: RegulationVersion, context: ResolverContext): Promise<RegulationVersion> {\n const { domain, user, tx } = context.state\n const today = todayIn(domain)\n if (!version.effectiveOn || version.effectiveOn < today) {\n version.status = RegulationVersionStatus.DRAFT\n version.activityInstanceId = null\n version.adoptionNote = `시행일 ${version.effectiveOn ?? ''}이(가) 결재가 끝난 ${today}보다 앞서 채택되지 않았습니다 — 시행일을 고쳐 다시 올리세요`\n return await tx.getRepository(RegulationVersion).save(version)\n }\n version.status = RegulationVersionStatus.ADOPTED\n version.adoptedAt = new Date()\n version.adoptedBy = user\n version.adoptionNote = null\n const saved = await tx.getRepository(RegulationVersion).save(version)\n await keepClauses(saved, context)\n\n const regulation = version.regulation!\n const announcement = await announce(context, {\n trigger: REGULATION_ADOPTED_TRIGGER,\n sourceKind: 'RegulationVersion',\n sourceId: saved.id,\n title: `${regulation.name} 제${saved.version}판 시행 안내 (${saved.effectiveOn})`,\n body: [`**${regulation.name}** 제${saved.version}판이 채택되어 **${saved.effectiveOn}**부터 시행됩니다.`, saved.changeSummary ? `\\n바뀐 곳: ${saved.changeSummary}` : ''].join(''),\n links: [{ label: regulation.name, url: `regulations?regulation=${encodeURIComponent(regulation.code)}&version=${saved.id}` }]\n })\n if (announcement) {\n saved.announcementId = announcement.id\n await tx.getRepository(RegulationVersion).save(saved)\n }\n invalidateHelpSource(REGULATION_HELP_SOURCE, domain.id)\n return saved\n}\n\n/** The announcement of each version, by version - drafts too, the keeper reads whether it went out. */\nexport async function announcementsOfVersions(tx: EntityManager, domain: { id: string }, versionIds: string[]) {\n const rows = await announcementsOfSource(domain, 'RegulationVersion', versionIds, tx)\n return new Map(rows.map(one => [one.sourceId!, one]))\n}\n\n/** Every regulation of a kind whose version in force has no filing - a work rule must be filed (근로기준법 §93). */\nexport async function regulationsWithoutFiling(manager: EntityManager, domain: { id: string }, today: string) {\n const regulations = await manager.getRepository(Regulation).find({ where: { domain: { id: domain.id }, kind: In([RegulationKind.WORK_RULES, RegulationKind.WORK_RULES_ANNEX]) } as any })\n if (!regulations.length) return []\n const versions = await manager.getRepository(RegulationVersion).find({ where: { regulation: { id: In(regulations.map(one => one.id)) }, status: RegulationVersionStatus.ADOPTED } as any })\n const out: { regulation: Regulation; version: RegulationVersion }[] = []\n for (const regulation of regulations) {\n const { inForce } = standingOf(versions.filter(one => one.regulationId === regulation.id), today)\n if (!inForce) continue\n const filed = await manager.getRepository(RegulationProcedure).count({ where: { version: { id: inForce.id }, kind: RegulationProcedureKind.FILING } as any })\n if (!filed) out.push({ regulation, version: inForce })\n }\n return out\n}\n"]}
@@ -37,6 +37,7 @@ export declare class RegulationList {
37
37
  export declare class RegulationClauseChange {
38
38
  number: string;
39
39
  title?: string;
40
+ heading: string;
40
41
  change: string;
41
42
  }
42
43
  export declare class RegulationProcedureRow extends RegulationProcedure {
@@ -47,8 +48,11 @@ export declare class RegulationVersionView {
47
48
  period: string;
48
49
  endsOn?: string;
49
50
  clauses: RegulationClause[];
51
+ appendix?: string;
52
+ text?: string;
50
53
  changes: RegulationClauseChange[];
51
54
  procedures?: RegulationProcedureRow[];
55
+ originals?: number;
52
56
  announcement?: Announcement;
53
57
  told: boolean;
54
58
  readAt?: Date;
@@ -142,6 +142,10 @@ tslib_1.__decorate([
142
142
  (0, type_graphql_1.Field)({ nullable: true, description: 'Its heading' }),
143
143
  tslib_1.__metadata("design:type", String)
144
144
  ], RegulationClauseChange.prototype, "title", void 0);
145
+ tslib_1.__decorate([
146
+ (0, type_graphql_1.Field)({ description: 'How it is named on the page - 제3조(휴게), 부칙 제1조(시행일)' }),
147
+ tslib_1.__metadata("design:type", String)
148
+ ], RegulationClauseChange.prototype, "heading", void 0);
145
149
  tslib_1.__decorate([
146
150
  (0, type_graphql_1.Field)({ description: 'ADDED, CHANGED or REMOVED' }),
147
151
  tslib_1.__metadata("design:type", String)
@@ -178,6 +182,14 @@ tslib_1.__decorate([
178
182
  (0, type_graphql_1.Field)(type => [regulation_1.RegulationClause], { description: 'Its articles' }),
179
183
  tslib_1.__metadata("design:type", Array)
180
184
  ], RegulationVersionView.prototype, "clauses", void 0);
185
+ tslib_1.__decorate([
186
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The words after its articles from the first line headed in brackets - [별표 1]' }),
187
+ tslib_1.__metadata("design:type", String)
188
+ ], RegulationVersionView.prototype, "appendix", void 0);
189
+ tslib_1.__decorate([
190
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The whole text, where it has no article - a table of amounts' }),
191
+ tslib_1.__metadata("design:type", String)
192
+ ], RegulationVersionView.prototype, "text", void 0);
181
193
  tslib_1.__decorate([
182
194
  (0, type_graphql_1.Field)(type => [RegulationClauseChange], { description: 'What it changed of the version adopted before' }),
183
195
  tslib_1.__metadata("design:type", Array)
@@ -186,6 +198,10 @@ tslib_1.__decorate([
186
198
  (0, type_graphql_1.Field)(type => [RegulationProcedureRow], { nullable: true, description: 'The procedure - to its keepers only' }),
187
199
  tslib_1.__metadata("design:type", Array)
188
200
  ], RegulationVersionView.prototype, "procedures", void 0);
201
+ tslib_1.__decorate([
202
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'How many originals are attached to a version registered as in force - to its keepers only' }),
203
+ tslib_1.__metadata("design:type", Number)
204
+ ], RegulationVersionView.prototype, "originals", void 0);
189
205
  tslib_1.__decorate([
190
206
  (0, type_graphql_1.Field)(type => announcement_1.Announcement, { nullable: true, description: 'The announcement that told of it - to its keepers only' }),
191
207
  tslib_1.__metadata("design:type", announcement_1.Announcement)
@@ -1 +1 @@
1
- {"version":3,"file":"regulation-type.js","sourceRoot":"","sources":["../../../server/service/regulation/regulation-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { Announcement } from '@things-factory/announcement'\n\nimport { Regulation, RegulationClause, RegulationKind, RegulationProcedure, RegulationProcedureKind, RegulationVersion } from './regulation'\n\n@InputType({ description: 'A new company rule' })\nexport class NewRegulation {\n @Field({ description: 'The code, unique in the domain' }) code: string\n @Field({ description: 'The name' }) name: string\n @Field(type => RegulationKind, { description: 'What it is' }) kind: RegulationKind\n @Field(type => [String], { nullable: true, description: \"The guide's sections it answers\" }) topics?: string[]\n @Field(type => Int, { nullable: true, description: 'Its place in the list' }) rank?: number\n @Field({ nullable: true, description: 'The text of its first version, in Markdown' }) body?: string\n}\n\n@InputType({ description: 'What changes of a company rule' })\nexport class RegulationPatch {\n @Field({ nullable: true, description: 'The name' }) name?: string\n @Field(type => RegulationKind, { nullable: true, description: 'What it is - while none of its versions is adopted' }) kind?: RegulationKind\n @Field(type => [String], { nullable: true, description: \"The guide's sections it answers\" }) topics?: string[]\n @Field(type => Int, { nullable: true, description: 'Its place in the list' }) rank?: number\n}\n\n@InputType({ description: 'What changes of a version being written' })\nexport class RegulationVersionPatch {\n @Field({ nullable: true, description: 'The text in Markdown' }) body?: string\n @Field({ nullable: true, description: 'YYYY-MM-DD it takes effect' }) effectiveOn?: string\n @Field({ nullable: true, description: 'What changed' }) changeSummary?: string\n @Field({ nullable: true, description: 'Whether the change is against the workers' }) unfavourable?: boolean\n @Field(type => Int, { nullable: true, description: 'How many workers the procedure is of' }) workersCount?: number\n}\n\n@InputType({ description: 'An opinion heard, a consent given or a filing' })\nexport class NewRegulationProcedure {\n @Field({ description: 'The version' }) versionId: string\n @Field(type => RegulationProcedureKind, { description: 'Opinion, consent or filing' }) kind: RegulationProcedureKind\n @Field({ description: 'YYYY-MM-DD' }) day: string\n @Field({ nullable: true, description: 'How it was taken' }) method?: string\n @Field(type => Int, { nullable: true, description: 'How many workers it was of' }) workersCount?: number\n @Field(type => Int, { nullable: true, description: 'How many consented' }) consentCount?: number\n @Field({ nullable: true, description: 'Notes' }) notes?: string\n}\n\n@ObjectType({ description: 'A list of company rules' })\nexport class RegulationList {\n @Field(type => [Regulation], { description: 'The rules' }) items: Regulation[]\n @Field(type => Int, { description: 'How many' }) total: number\n}\n\n@ObjectType({ description: 'An article added, changed or removed of the version before' })\nexport class RegulationClauseChange {\n @Field({ description: 'The article number' }) number: string\n @Field({ nullable: true, description: 'Its heading' }) title?: string\n @Field({ description: 'ADDED, CHANGED or REMOVED' }) change: string\n}\n\n@ObjectType({ description: 'A procedure with how many papers it carries' })\nexport class RegulationProcedureRow extends RegulationProcedure {\n @Field(type => Int, { description: 'How many papers are attached' }) files: number\n}\n\n@ObjectType({ description: 'A version as its reader sees it - where it stands today, its articles and what changed' })\nexport class RegulationVersionView {\n @Field(type => RegulationVersion, { description: 'The version' }) version: RegulationVersion\n @Field({ description: 'DRAFT, IN_APPROVAL, DUE, IN_FORCE or PAST - on today' }) period: string\n @Field({ nullable: true, description: 'YYYY-MM-DD the version after it took effect - the end of its time' }) endsOn?: string\n @Field(type => [RegulationClause], { description: 'Its articles' }) clauses: RegulationClause[]\n @Field(type => [RegulationClauseChange], { description: 'What it changed of the version adopted before' }) changes: RegulationClauseChange[]\n @Field(type => [RegulationProcedureRow], { nullable: true, description: 'The procedure - to its keepers only' }) procedures?: RegulationProcedureRow[]\n @Field(type => Announcement, { nullable: true, description: 'The announcement that told of it - to its keepers only' }) announcement?: Announcement\n @Field({ description: 'Whether the employees were told of it - its announcement is out' }) told: boolean\n @Field({ nullable: true, description: 'When the reader acknowledged it' }) readAt?: Date\n}\n\n@ObjectType({ description: 'A company rule as its reader sees it' })\nexport class RegulationView {\n @Field(type => Regulation, { description: 'The rule' }) regulation: Regulation\n @Field(type => RegulationVersionView, { nullable: true, description: 'The version in force' }) inForce?: RegulationVersionView\n @Field(type => RegulationVersionView, { nullable: true, description: 'The version adopted to take effect later' }) due?: RegulationVersionView\n @Field(type => [RegulationVersionView], { description: 'Every version the reader may read, newest first' }) versions: RegulationVersionView[]\n}\n"]}
1
+ {"version":3,"file":"regulation-type.js","sourceRoot":"","sources":["../../../server/service/regulation/regulation-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { Announcement } from '@things-factory/announcement'\n\nimport { Regulation, RegulationClause, RegulationKind, RegulationProcedure, RegulationProcedureKind, RegulationVersion } from './regulation'\n\n@InputType({ description: 'A new company rule' })\nexport class NewRegulation {\n @Field({ description: 'The code, unique in the domain' }) code: string\n @Field({ description: 'The name' }) name: string\n @Field(type => RegulationKind, { description: 'What it is' }) kind: RegulationKind\n @Field(type => [String], { nullable: true, description: \"The guide's sections it answers\" }) topics?: string[]\n @Field(type => Int, { nullable: true, description: 'Its place in the list' }) rank?: number\n @Field({ nullable: true, description: 'The text of its first version, in Markdown' }) body?: string\n}\n\n@InputType({ description: 'What changes of a company rule' })\nexport class RegulationPatch {\n @Field({ nullable: true, description: 'The name' }) name?: string\n @Field(type => RegulationKind, { nullable: true, description: 'What it is - while none of its versions is adopted' }) kind?: RegulationKind\n @Field(type => [String], { nullable: true, description: \"The guide's sections it answers\" }) topics?: string[]\n @Field(type => Int, { nullable: true, description: 'Its place in the list' }) rank?: number\n}\n\n@InputType({ description: 'What changes of a version being written' })\nexport class RegulationVersionPatch {\n @Field({ nullable: true, description: 'The text in Markdown' }) body?: string\n @Field({ nullable: true, description: 'YYYY-MM-DD it takes effect' }) effectiveOn?: string\n @Field({ nullable: true, description: 'What changed' }) changeSummary?: string\n @Field({ nullable: true, description: 'Whether the change is against the workers' }) unfavourable?: boolean\n @Field(type => Int, { nullable: true, description: 'How many workers the procedure is of' }) workersCount?: number\n}\n\n@InputType({ description: 'An opinion heard, a consent given or a filing' })\nexport class NewRegulationProcedure {\n @Field({ description: 'The version' }) versionId: string\n @Field(type => RegulationProcedureKind, { description: 'Opinion, consent or filing' }) kind: RegulationProcedureKind\n @Field({ description: 'YYYY-MM-DD' }) day: string\n @Field({ nullable: true, description: 'How it was taken' }) method?: string\n @Field(type => Int, { nullable: true, description: 'How many workers it was of' }) workersCount?: number\n @Field(type => Int, { nullable: true, description: 'How many consented' }) consentCount?: number\n @Field({ nullable: true, description: 'Notes' }) notes?: string\n}\n\n@ObjectType({ description: 'A list of company rules' })\nexport class RegulationList {\n @Field(type => [Regulation], { description: 'The rules' }) items: Regulation[]\n @Field(type => Int, { description: 'How many' }) total: number\n}\n\n@ObjectType({ description: 'An article added, changed or removed of the version before' })\nexport class RegulationClauseChange {\n @Field({ description: 'The article number' }) number: string\n @Field({ nullable: true, description: 'Its heading' }) title?: string\n @Field({ description: 'How it is named on the page - 제3조(휴게), 부칙 제1조(시행일)' }) heading: string\n @Field({ description: 'ADDED, CHANGED or REMOVED' }) change: string\n}\n\n@ObjectType({ description: 'A procedure with how many papers it carries' })\nexport class RegulationProcedureRow extends RegulationProcedure {\n @Field(type => Int, { description: 'How many papers are attached' }) files: number\n}\n\n@ObjectType({ description: 'A version as its reader sees it - where it stands today, its articles and what changed' })\nexport class RegulationVersionView {\n @Field(type => RegulationVersion, { description: 'The version' }) version: RegulationVersion\n @Field({ description: 'DRAFT, IN_APPROVAL, DUE, IN_FORCE or PAST - on today' }) period: string\n @Field({ nullable: true, description: 'YYYY-MM-DD the version after it took effect - the end of its time' }) endsOn?: string\n @Field(type => [RegulationClause], { description: 'Its articles' }) clauses: RegulationClause[]\n @Field({ nullable: true, description: 'The words after its articles from the first line headed in brackets - [별표 1]' }) appendix?: string\n @Field({ nullable: true, description: 'The whole text, where it has no article - a table of amounts' }) text?: string\n @Field(type => [RegulationClauseChange], { description: 'What it changed of the version adopted before' }) changes: RegulationClauseChange[]\n @Field(type => [RegulationProcedureRow], { nullable: true, description: 'The procedure - to its keepers only' }) procedures?: RegulationProcedureRow[]\n @Field(type => Int, { nullable: true, description: 'How many originals are attached to a version registered as in force - to its keepers only' }) originals?: number\n @Field(type => Announcement, { nullable: true, description: 'The announcement that told of it - to its keepers only' }) announcement?: Announcement\n @Field({ description: 'Whether the employees were told of it - its announcement is out' }) told: boolean\n @Field({ nullable: true, description: 'When the reader acknowledged it' }) readAt?: Date\n}\n\n@ObjectType({ description: 'A company rule as its reader sees it' })\nexport class RegulationView {\n @Field(type => Regulation, { description: 'The rule' }) regulation: Regulation\n @Field(type => RegulationVersionView, { nullable: true, description: 'The version in force' }) inForce?: RegulationVersionView\n @Field(type => RegulationVersionView, { nullable: true, description: 'The version adopted to take effect later' }) due?: RegulationVersionView\n @Field(type => [RegulationVersionView], { description: 'Every version the reader may read, newest first' }) versions: RegulationVersionView[]\n}\n"]}
@@ -4,7 +4,7 @@ import { Domain } from '@things-factory/shell';
4
4
  export declare enum RegulationKind {
5
5
  /** 취업규칙 - filed with the labour office; the workers' majority opinion, their consent for a change against them. */
6
6
  WORK_RULES = "WORK_RULES",
7
- /** 부속 규정 - rules of working conditions apart from the work rules: the use of the business systems, evaluation, travel. */
7
+ /** 부속 규정 - only annexes that substantively govern working conditions; not every operating policy. */
8
8
  WORK_RULES_ANNEX = "WORK_RULES_ANNEX",
9
9
  /** 개인정보 처리방침 - published (개인정보보호법 §30). */
10
10
  PRIVACY_POLICY = "PRIVACY_POLICY",
@@ -71,6 +71,7 @@ export declare class RegulationVersion {
71
71
  adoptedBy?: User;
72
72
  adoptedById?: string;
73
73
  adoptionNote?: string;
74
+ registeredInForce?: boolean;
74
75
  announcementId?: string;
75
76
  createdAt?: Date;
76
77
  updatedAt?: Date;
@@ -87,6 +88,7 @@ export declare class RegulationClause {
87
88
  versionId?: string;
88
89
  rank: number;
89
90
  number: string;
91
+ heading?: string;
90
92
  title?: string;
91
93
  chapter?: string;
92
94
  text: string;
@@ -11,7 +11,7 @@ var RegulationKind;
11
11
  (function (RegulationKind) {
12
12
  /** 취업규칙 - filed with the labour office; the workers' majority opinion, their consent for a change against them. */
13
13
  RegulationKind["WORK_RULES"] = "WORK_RULES";
14
- /** 부속 규정 - rules of working conditions apart from the work rules: the use of the business systems, evaluation, travel. */
14
+ /** 부속 규정 - only annexes that substantively govern working conditions; not every operating policy. */
15
15
  RegulationKind["WORK_RULES_ANNEX"] = "WORK_RULES_ANNEX";
16
16
  /** 개인정보 처리방침 - published (개인정보보호법 §30). */
17
17
  RegulationKind["PRIVACY_POLICY"] = "PRIVACY_POLICY";
@@ -210,6 +210,11 @@ tslib_1.__decorate([
210
210
  (0, type_graphql_1.Field)({ nullable: true, description: 'Why an approval did not adopt it - its effective day had passed' }),
211
211
  tslib_1.__metadata("design:type", String)
212
212
  ], RegulationVersion.prototype, "adoptionNote", void 0);
213
+ tslib_1.__decorate([
214
+ (0, typeorm_1.Column)({ nullable: true }),
215
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Whether it was registered as in force already - a rule taken before the system, adopted without approval or announcement' }),
216
+ tslib_1.__metadata("design:type", Boolean)
217
+ ], RegulationVersion.prototype, "registeredInForce", void 0);
213
218
  tslib_1.__decorate([
214
219
  (0, typeorm_1.Column)({ nullable: true }),
215
220
  (0, type_graphql_1.Field)({ nullable: true, description: 'The announcement that told the employees of it' }),
@@ -278,9 +283,14 @@ tslib_1.__decorate([
278
283
  ], RegulationClause.prototype, "rank", void 0);
279
284
  tslib_1.__decorate([
280
285
  (0, typeorm_1.Column)(),
281
- (0, type_graphql_1.Field)({ description: 'The article number as written - `3`, `3의2`' }),
286
+ (0, type_graphql_1.Field)({ description: 'The article number as written - `3`, `3의2`; in the addenda `부칙1`' }),
282
287
  tslib_1.__metadata("design:type", String)
283
288
  ], RegulationClause.prototype, "number", void 0);
289
+ tslib_1.__decorate([
290
+ (0, typeorm_1.Column)({ nullable: true }),
291
+ (0, type_graphql_1.Field)({ nullable: true, description: 'How it is named on the page - 제3조(휴게), 부칙 제1조(시행일)' }),
292
+ tslib_1.__metadata("design:type", String)
293
+ ], RegulationClause.prototype, "heading", void 0);
284
294
  tslib_1.__decorate([
285
295
  (0, typeorm_1.Column)({ nullable: true }),
286
296
  (0, type_graphql_1.Field)({ nullable: true, description: 'The heading in the brackets - 근로시간' }),
@@ -1 +1 @@
1
- {"version":3,"file":"regulation.js","sourceRoot":"","sources":["../../../server/service/regulation/regulation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, Int, ObjectType, registerEnumType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\n/** What a rule is, and so which procedure its adoption needs (ADR-0187 decisions 2, 4). */\nexport enum RegulationKind {\n /** 취업규칙 - filed with the labour office; the workers' majority opinion, their consent for a change against them. */\n WORK_RULES = 'WORK_RULES',\n /** 부속 규정 - rules of working conditions apart from the work rules: the use of the business systems, evaluation, travel. */\n WORK_RULES_ANNEX = 'WORK_RULES_ANNEX',\n /** 개인정보 처리방침 - published (개인정보보호법 §30). */\n PRIVACY_POLICY = 'PRIVACY_POLICY',\n /** 내부관리계획 */\n PRIVACY_PLAN = 'PRIVACY_PLAN',\n /** 그 밖의 규정 - none of the working conditions: the keeping of documents and the like. */\n OTHER = 'OTHER'\n}\n\nregisterEnumType(RegulationKind, { name: 'RegulationKind', description: 'work rules, an annex of them, the privacy policy, the privacy plan, or another rule' })\n\n/** Where a version stands. An adopted one is due, in force or past by its effective day - read on the day, never stored. */\nexport enum RegulationVersionStatus {\n DRAFT = 'DRAFT',\n IN_APPROVAL = 'IN_APPROVAL',\n ADOPTED = 'ADOPTED'\n}\n\nregisterEnumType(RegulationVersionStatus, { name: 'RegulationVersionStatus', description: 'being written, in approval, or adopted' })\n\n/** A step the law asks of a rule's change (근로기준법 §93, §94). */\nexport enum RegulationProcedureKind {\n /** 의견 청취 - the opinion of the workers' majority, or of the union of the majority. */\n OPINION = 'OPINION',\n /** 동의 - the consent of the majority, for a change against the workers. */\n CONSENT = 'CONSENT',\n /** 신고 - filed with the labour office. */\n FILING = 'FILING'\n}\n\nregisterEnumType(RegulationProcedureKind, { name: 'RegulationProcedureKind', description: 'the opinion heard, the consent given, or the filing' })\n\n/**\n * 규정 (ADR-0187 decision 2) - one rule of the company, by code: its name, kind and the topics of the guide it answers.\n * Its text is in its versions.\n */\n@Entity({ name: 'compliance_regulations' })\n@Index('ix_compliance_regulation_0', (row: Regulation) => [row.domain, row.code], { unique: true })\n@ObjectType({ description: 'A rule of the company - work rules, an annex, the privacy policy - with its versions (ADR-0187)' })\nexport class Regulation {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Regulation id' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain' })\n domain?: Domain\n\n @RelationId((row: Regulation) => row.domain)\n domainId?: string\n\n @Column()\n @Field({ description: 'The code, unique in the domain - `WORK`' })\n code: string\n\n @Column()\n @Field({ description: 'The name - 취업규칙' })\n name: string\n\n @Column()\n @Field(type => RegulationKind, { description: 'What it is, and so the procedure its adoption needs' })\n kind: RegulationKind\n\n @Column('simple-json', { nullable: true })\n @Field(type => [String], { nullable: true, description: \"The guide's sections it answers - `severance`, `leave` (the section ids of the guide on the law)\" })\n topics?: string[]\n\n @Column('int', { default: 0 })\n @Field(type => Int, { description: 'Its place in the list' })\n rank: number\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'Creation timestamp' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'Last update timestamp' })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote it' })\n creator?: User\n\n @RelationId((row: Regulation) => row.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed it last' })\n updater?: User\n\n @RelationId((row: Regulation) => row.updater)\n updaterId?: string\n}\n\n/**\n * 판 (ADR-0187 decisions 2-6) - one text of a rule: written, put up for adoption, adopted to take effect on a day. Once\n * adopted its text, day, whether it is against the workers and its procedure stay as they were; a correction is a new\n * version.\n */\n@Entity({ name: 'compliance_regulation_versions' })\n@Index('ix_compliance_regulation_version_0', (row: RegulationVersion) => [row.regulation, row.version], { unique: true })\n@Index('ix_compliance_regulation_version_1', (row: RegulationVersion) => [row.domain, row.status, row.effectiveOn])\n@ObjectType({ description: 'One version of a rule - its text, the day it takes effect, the procedure it went through (ADR-0187)' })\nexport class RegulationVersion {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Version id' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain' })\n domain?: Domain\n\n @RelationId((row: RegulationVersion) => row.domain)\n domainId?: string\n\n @ManyToOne(type => Regulation, { onDelete: 'CASCADE' })\n @Field(type => Regulation, { nullable: true, description: 'The rule' })\n regulation?: Regulation\n\n @RelationId((row: RegulationVersion) => row.regulation)\n @Field({ nullable: true, description: 'The rule' })\n regulationId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'The version number - 1, 2 ...' })\n version: number\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'The text in Markdown; its articles begin `제n조(제목)`' })\n body?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'YYYY-MM-DD it takes effect - on or after the day its approval ends' })\n effectiveOn?: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'What changed, in the words of its writer' })\n changeSummary?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Whether the change is against the workers (불이익 변경) - none until its writer says' })\n unfavourable?: boolean\n\n @Column({ default: RegulationVersionStatus.DRAFT })\n @Field(type => RegulationVersionStatus, { description: 'Being written, in approval, or adopted' })\n status: RegulationVersionStatus\n\n @Column({ type: 'int', nullable: true })\n @Field(type => Int, { nullable: true, description: 'How many workers the procedure is of - written by its keeper' })\n workersCount?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n activityInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When it was adopted' })\n adoptedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who decided its adoption' })\n adoptedBy?: User\n\n @RelationId((row: RegulationVersion) => row.adoptedBy)\n adoptedById?: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'Why an approval did not adopt it - its effective day had passed' })\n adoptionNote?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The announcement that told the employees of it' })\n announcementId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'Creation timestamp' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'Last update timestamp' })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote it' })\n creator?: User\n\n @RelationId((row: RegulationVersion) => row.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed it last' })\n updater?: User\n\n @RelationId((row: RegulationVersion) => row.updater)\n updaterId?: string\n}\n\n/** 조문 (ADR-0187 decision 2) - one article of an adopted version, cut from its text at `제n조`. */\n@Entity({ name: 'compliance_regulation_clauses' })\n@Index('ix_compliance_regulation_clause_0', (row: RegulationClause) => [row.version, row.rank])\n@ObjectType({ description: 'One article of a version of a rule, cut from its text' })\nexport class RegulationClause {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Clause id' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n domain?: Domain\n\n @ManyToOne(type => RegulationVersion, { onDelete: 'CASCADE' })\n version?: RegulationVersion\n\n @RelationId((row: RegulationClause) => row.version)\n @Field({ nullable: true, description: 'The version' })\n versionId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'Its place in the text' })\n rank: number\n\n @Column()\n @Field({ description: 'The article number as written - `3`, `3의2`' })\n number: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The heading in the brackets - 근로시간' })\n title?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The chapter it stands in - 제2장 근로시간' })\n chapter?: string\n\n @Column({ type: 'text' })\n @Field({ description: 'The words of the article' })\n text: string\n}\n\n/**\n * 절차 기록 (ADR-0187 decision 4) - the evidence the law asks of a change: the majority's opinion heard, their consent,\n * the filing. Its papers (opinion, consent, filing and receipt) hang on it as attachments.\n */\n@Entity({ name: 'compliance_regulation_procedures' })\n@Index('ix_compliance_regulation_procedure_0', (row: RegulationProcedure) => [row.version, row.kind])\n@ObjectType({ description: 'The opinion heard, the consent given or the filing of a version of a rule, with its papers' })\nexport class RegulationProcedure {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Procedure id' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n domain?: Domain\n\n @RelationId((row: RegulationProcedure) => row.domain)\n domainId?: string\n\n @ManyToOne(type => RegulationVersion, { onDelete: 'CASCADE' })\n version?: RegulationVersion\n\n @RelationId((row: RegulationProcedure) => row.version)\n @Field({ nullable: true, description: 'The version' })\n versionId?: string\n\n @Column()\n @Field(type => RegulationProcedureKind, { description: 'Opinion, consent or filing' })\n kind: RegulationProcedureKind\n\n @Column()\n @Field({ description: 'YYYY-MM-DD it was heard, given or filed' })\n day: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'How - a code of the module: the union of the majority, a meeting of the workers, signatures, online filing' })\n method?: string\n\n @Column({ type: 'int', nullable: true })\n @Field(type => Int, { nullable: true, description: 'How many workers it was of' })\n workersCount?: number\n\n @Column({ type: 'int', nullable: true })\n @Field(type => Int, { nullable: true, description: 'How many consented - for a consent' })\n consentCount?: number\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true })\n notes?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'Creation timestamp' })\n createdAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote it' })\n creator?: User\n\n @RelationId((row: RegulationProcedure) => row.creator)\n creatorId?: string\n}\n"]}
1
+ {"version":3,"file":"regulation.js","sourceRoot":"","sources":["../../../server/service/regulation/regulation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, Int, ObjectType, registerEnumType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\n/** What a rule is, and so which procedure its adoption needs (ADR-0187 decisions 2, 4). */\nexport enum RegulationKind {\n /** 취업규칙 - filed with the labour office; the workers' majority opinion, their consent for a change against them. */\n WORK_RULES = 'WORK_RULES',\n /** 부속 규정 - only annexes that substantively govern working conditions; not every operating policy. */\n WORK_RULES_ANNEX = 'WORK_RULES_ANNEX',\n /** 개인정보 처리방침 - published (개인정보보호법 §30). */\n PRIVACY_POLICY = 'PRIVACY_POLICY',\n /** 내부관리계획 */\n PRIVACY_PLAN = 'PRIVACY_PLAN',\n /** 그 밖의 규정 - none of the working conditions: the keeping of documents and the like. */\n OTHER = 'OTHER'\n}\n\nregisterEnumType(RegulationKind, { name: 'RegulationKind', description: 'work rules, an annex of them, the privacy policy, the privacy plan, or another rule' })\n\n/** Where a version stands. An adopted one is due, in force or past by its effective day - read on the day, never stored. */\nexport enum RegulationVersionStatus {\n DRAFT = 'DRAFT',\n IN_APPROVAL = 'IN_APPROVAL',\n ADOPTED = 'ADOPTED'\n}\n\nregisterEnumType(RegulationVersionStatus, { name: 'RegulationVersionStatus', description: 'being written, in approval, or adopted' })\n\n/** A step the law asks of a rule's change (근로기준법 §93, §94). */\nexport enum RegulationProcedureKind {\n /** 의견 청취 - the opinion of the workers' majority, or of the union of the majority. */\n OPINION = 'OPINION',\n /** 동의 - the consent of the majority, for a change against the workers. */\n CONSENT = 'CONSENT',\n /** 신고 - filed with the labour office. */\n FILING = 'FILING'\n}\n\nregisterEnumType(RegulationProcedureKind, { name: 'RegulationProcedureKind', description: 'the opinion heard, the consent given, or the filing' })\n\n/**\n * 규정 (ADR-0187 decision 2) - one rule of the company, by code: its name, kind and the topics of the guide it answers.\n * Its text is in its versions.\n */\n@Entity({ name: 'compliance_regulations' })\n@Index('ix_compliance_regulation_0', (row: Regulation) => [row.domain, row.code], { unique: true })\n@ObjectType({ description: 'A rule of the company - work rules, an annex, the privacy policy - with its versions (ADR-0187)' })\nexport class Regulation {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Regulation id' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain' })\n domain?: Domain\n\n @RelationId((row: Regulation) => row.domain)\n domainId?: string\n\n @Column()\n @Field({ description: 'The code, unique in the domain - `WORK`' })\n code: string\n\n @Column()\n @Field({ description: 'The name - 취업규칙' })\n name: string\n\n @Column()\n @Field(type => RegulationKind, { description: 'What it is, and so the procedure its adoption needs' })\n kind: RegulationKind\n\n @Column('simple-json', { nullable: true })\n @Field(type => [String], { nullable: true, description: \"The guide's sections it answers - `severance`, `leave` (the section ids of the guide on the law)\" })\n topics?: string[]\n\n @Column('int', { default: 0 })\n @Field(type => Int, { description: 'Its place in the list' })\n rank: number\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'Creation timestamp' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'Last update timestamp' })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote it' })\n creator?: User\n\n @RelationId((row: Regulation) => row.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed it last' })\n updater?: User\n\n @RelationId((row: Regulation) => row.updater)\n updaterId?: string\n}\n\n/**\n * 판 (ADR-0187 decisions 2-6) - one text of a rule: written, put up for adoption, adopted to take effect on a day. Once\n * adopted its text, day, whether it is against the workers and its procedure stay as they were; a correction is a new\n * version.\n */\n@Entity({ name: 'compliance_regulation_versions' })\n@Index('ix_compliance_regulation_version_0', (row: RegulationVersion) => [row.regulation, row.version], { unique: true })\n@Index('ix_compliance_regulation_version_1', (row: RegulationVersion) => [row.domain, row.status, row.effectiveOn])\n@ObjectType({ description: 'One version of a rule - its text, the day it takes effect, the procedure it went through (ADR-0187)' })\nexport class RegulationVersion {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Version id' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain' })\n domain?: Domain\n\n @RelationId((row: RegulationVersion) => row.domain)\n domainId?: string\n\n @ManyToOne(type => Regulation, { onDelete: 'CASCADE' })\n @Field(type => Regulation, { nullable: true, description: 'The rule' })\n regulation?: Regulation\n\n @RelationId((row: RegulationVersion) => row.regulation)\n @Field({ nullable: true, description: 'The rule' })\n regulationId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'The version number - 1, 2 ...' })\n version: number\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'The text in Markdown; its articles begin `제n조(제목)`' })\n body?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'YYYY-MM-DD it takes effect - on or after the day its approval ends' })\n effectiveOn?: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'What changed, in the words of its writer' })\n changeSummary?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Whether the change is against the workers (불이익 변경) - none until its writer says' })\n unfavourable?: boolean\n\n @Column({ default: RegulationVersionStatus.DRAFT })\n @Field(type => RegulationVersionStatus, { description: 'Being written, in approval, or adopted' })\n status: RegulationVersionStatus\n\n @Column({ type: 'int', nullable: true })\n @Field(type => Int, { nullable: true, description: 'How many workers the procedure is of - written by its keeper' })\n workersCount?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n activityInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When it was adopted' })\n adoptedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who decided its adoption' })\n adoptedBy?: User\n\n @RelationId((row: RegulationVersion) => row.adoptedBy)\n adoptedById?: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'Why an approval did not adopt it - its effective day had passed' })\n adoptionNote?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Whether it was registered as in force already - a rule taken before the system, adopted without approval or announcement' })\n registeredInForce?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The announcement that told the employees of it' })\n announcementId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'Creation timestamp' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'Last update timestamp' })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote it' })\n creator?: User\n\n @RelationId((row: RegulationVersion) => row.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed it last' })\n updater?: User\n\n @RelationId((row: RegulationVersion) => row.updater)\n updaterId?: string\n}\n\n/** 조문 (ADR-0187 decision 2) - one article of an adopted version, cut from its text at `제n조`. */\n@Entity({ name: 'compliance_regulation_clauses' })\n@Index('ix_compliance_regulation_clause_0', (row: RegulationClause) => [row.version, row.rank])\n@ObjectType({ description: 'One article of a version of a rule, cut from its text' })\nexport class RegulationClause {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Clause id' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n domain?: Domain\n\n @ManyToOne(type => RegulationVersion, { onDelete: 'CASCADE' })\n version?: RegulationVersion\n\n @RelationId((row: RegulationClause) => row.version)\n @Field({ nullable: true, description: 'The version' })\n versionId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'Its place in the text' })\n rank: number\n\n @Column()\n @Field({ description: 'The article number as written - `3`, `3의2`; in the addenda `부칙1`' })\n number: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'How it is named on the page - 제3조(휴게), 부칙 제1조(시행일)' })\n heading?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The heading in the brackets - 근로시간' })\n title?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The chapter it stands in - 제2장 근로시간' })\n chapter?: string\n\n @Column({ type: 'text' })\n @Field({ description: 'The words of the article' })\n text: string\n}\n\n/**\n * 절차 기록 (ADR-0187 decision 4) - the evidence the law asks of a change: the majority's opinion heard, their consent,\n * the filing. Its papers (opinion, consent, filing and receipt) hang on it as attachments.\n */\n@Entity({ name: 'compliance_regulation_procedures' })\n@Index('ix_compliance_regulation_procedure_0', (row: RegulationProcedure) => [row.version, row.kind])\n@ObjectType({ description: 'The opinion heard, the consent given or the filing of a version of a rule, with its papers' })\nexport class RegulationProcedure {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Procedure id' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n domain?: Domain\n\n @RelationId((row: RegulationProcedure) => row.domain)\n domainId?: string\n\n @ManyToOne(type => RegulationVersion, { onDelete: 'CASCADE' })\n version?: RegulationVersion\n\n @RelationId((row: RegulationProcedure) => row.version)\n @Field({ nullable: true, description: 'The version' })\n versionId?: string\n\n @Column()\n @Field(type => RegulationProcedureKind, { description: 'Opinion, consent or filing' })\n kind: RegulationProcedureKind\n\n @Column()\n @Field({ description: 'YYYY-MM-DD it was heard, given or filed' })\n day: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'How - a code of the module: the union of the majority, a meeting of the workers, signatures, online filing' })\n method?: string\n\n @Column({ type: 'int', nullable: true })\n @Field(type => Int, { nullable: true, description: 'How many workers it was of' })\n workersCount?: number\n\n @Column({ type: 'int', nullable: true })\n @Field(type => Int, { nullable: true, description: 'How many consented - for a consent' })\n consentCount?: number\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true })\n notes?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'Creation timestamp' })\n createdAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote it' })\n creator?: User\n\n @RelationId((row: RegulationProcedure) => row.creator)\n creatorId?: string\n}\n"]}