# @things-factory/worklist 모듈

## 개요

`@things-factory/worklist`는 Things Factory 프레임워크 내에서 비즈니스 참여자들의 작업 목록(Todo list)을 관리하기 위한 핵심 모듈입니다. BPMN(Business Process Model and Notation) 개념을 기반으로 설계되어, 복잡한 워크플로우와 작업 할당, 추적, 승인 프로세스를 효과적으로 관리할 수 있는 기능을 제공합니다.

## 주요 기능

- **작업 정의 (Activity)**: 다양한 유형의 비즈니스 작업(Task, Service, Manual 등)을 정의하고 상태(Draft, Released, Deprecated)를 관리합니다.
- **작업 인스턴스 (ActivityInstance)**: 정의된 작업을 기반으로 실제 수행되는 작업 인스턴스를 생성하고 추적합니다.
- **작업 스레드 (ActivityThread)**: 개별 작업 인스턴스 내의 상세 수행 단위(스레드)를 관리하며, 담당자 할당, 상태 변경(Assigned, Started, Submitted 등) 및 실행 기록을 추적합니다.
- **승인 관리 (ActivityApproval)**: 작업 결과에 대한 승인 라인을 설정하고 승인/반려 프로세스를 관리합니다.
- **역할 기반 접근 제어**: 작업 생성, 할당, 수행, 감독 등에 대한 역할을 정의하고 권한을 관리합니다.
- **UI 컴포넌트 및 페이지**: 작업 목록, 대시보드, 작업 상세 화면 등 다양한 사용자 인터페이스 요소를 제공합니다.
- **GraphQL API**: 외부 시스템과의 연동 및 클라이언트 애플리케이션 개발을 위한 GraphQL API를 제공합니다.

## 사용 사례

- 기업 내 업무 프로세스 자동화
- 서비스 요청 처리 및 추적
- 승인 워크플로우 관리
- 프로젝트 작업 관리
- 개인 및 팀별 할 일 관리

## 기술 스택

- **백엔드**: Node.js, TypeScript, TypeORM, TypeGraphQL
- **프론트엔드**: LitElement, TypeScript
- **데이터베이스**: PostgreSQL (또는 TypeORM이 지원하는 다른 데이터베이스)

이 모듈은 Things Factory 생태계의 다른 모듈들(예: `@things-factory/auth-base`, `@things-factory/organization`)과 긴밀하게 연동되어 동작합니다.

## Sequence

![Scenario 1](./scenarios/scenario-001.png)
![Scenario 2](./scenarios/scenario-002.png)
![Scenario 3](./scenarios/scenario-003.png)
![Scenario 4](./scenarios/scenario-004.png)
