Files
lcbp3/Backend_folder.md
2025-11-27 17:08:49 +07:00

19 KiB

└── 📁backend
    ├── 📁scripts                                     # Script files
    │   ├── debug-db.ts                               # Debug database script
    │   └──  verify-workflow.ts                       # Verify workflow script
    ├── 📁src                                         # Source files
    │   ├── 📁common                                  # Common files
    │   │   ├── 📁auth                                # Authentication files
    │   │   │   ├── 📁dto                               # Data transfer objects
    │   │   │   │   ├── login.dto.ts                    # Login data transfer object
    │   │   │   │   └──  register.dto.ts                # Register data transfer object
    │   │   │   ├── 📁strategies                        # Authentication strategies
    │   │   │   │   ├── jwt-refresh.strategy.ts         # JWT refresh strategy
    │   │   │   │   └──  jwt.strategy.ts                # JWT strategy
    │   │   │   ├── auth.controller.spec.ts             # Authentication controller spec
    │   │   │   ├── auth.controller.ts                  # Authentication controller
    │   │   │   ├── auth.module.ts                      # Authentication module
    │   │   │   ├── auth.service.spec.ts                # Authentication service spec
    │   │   │   └── auth.service.ts                     # Authentication service
    │   │   ├── 📁config                                # Configuration files
    │   │   │   ├── env.validation.ts                   # Environment validation
    │   │   │   └──  redis.config.ts                    # Redis configuration
    │   │   ├── 📁decorators                            # Decorators files
    │   │   │   ├── audit.decorator.ts                    # Audit decorator
    │   │   │   ├── bypass-maintenance.decorator.ts     # Bypass maintenance decorator
    │   │   │   ├── circuit-breaker.decorator.ts        # Circuit breaker decorator
    │   │   │   ├── current-user.decorator.ts           # Current user decorator
    │   │   │   ├── idempotency.decorator.ts            # Idempotency decorator
    │   │   │   ├── require-permission.decorator.ts    # Require permission decorator
    │   │   │   └── retry.decorator.ts                  # Retry decorator
    │   │   ├── 📁entities                              # Entities files
    │   │   │   ├── audit-log.entity.ts                 # Audit log entity
    │   │   │   └──  base.entity.ts                     # Base entity
    │   │   ├── 📁exceptions                            # Exceptions files
    │   │   │   └──  http-exception.filter.ts            # HTTP exception filter
    │   │   ├── 📁file-storage                          # File storage files
    │   │   │   ├── 📁entities                          # Entities files
    │   │   │   │   └──  attachment.entity.ts            # Attachment entity
    │   │   │   ├── file-cleanup.service.ts             # File cleanup service
    │   │   │   ├── file-storage.controller.spec.ts     # File storage controller spec
    │   │   │   ├── file-storage.controller.ts          # File storage controller
    │   │   │   ├── file-storage.module.ts              # File storage module
    │   │   │   ├── file-storage.service.spec.ts        # File storage service spec
    │   │   │   └──  file-storage.service.ts             # File storage service
    │   │   ├── 📁guards                                # Guards files
    │   │   │   ├── jwt-auth.guard.ts                   # JWT authentication guard
    │   │   │   ├── jwt-refresh.guard.ts                # JWT refresh guard
    │   │   │   ├── maintenance-mode.guard.ts           # Maintenance mode guard
    │   │   │   └──  rbac.guard.ts                       # Role-based access control guard
    │   │   ├── 📁idempotency                           # Idempotency files
    │   │   │   ├── idempotency.interceptor.ts            # Idempotency interceptor
    │   │   │   └── performance.interceptor.ts          # Performance interceptor
    │   │   ├── 📁interceptors                            # Interceptors files
    │   │   │   ├── audit-log.interceptor.ts              # Audit log interceptor
    │   │   │   ├── idempotency.interceptor.ts            # Idempotency interceptor
    │   │   │   ├── performance.interceptor.ts          # Performance interceptor
    │   │   │   └── transform.interceptor.ts              # Transform interceptor
    │   │   ├── 📁maintenance                             # Maintenance files
    │   │   ├── 📁resilience                              # Resilience files
    │   │   │   └──  resilience.module.ts                 # Resilience module
    │   │   ├── 📁security                                # Security files
    │   │   ├── 📁services                                # Services files
    │   │   │   ├── crypto.service.ts                     # Crypto service
    │   │   │   └── request-context.service.ts            # Request context service
    │   │   └── common.module.ts                          # Common module
    │   ├── 📁database                                    # Database files
    │   │   ├── 📁migrations                              # Migrations files
    │   │   ├── 📁seeds                                   # Seeds files
    │   │   │   └── workflow-definitions.seed.ts          # Workflow definitions seed
    │   ├── 📁modules                                     # Modules files
    │   │   ├── 📁circulation                             # Circulation files
    │   │   │   ├── 📁dto                                   # DTO files
    │   │   │   │   ├── create-circulation.dto.ts           # Create circulation DTO
    │   │   │   │   ├── search-circulation.dto.ts           # Search circulation DTO
    │   │   │   │   └── update-circulation-routing.dto.ts   # Update circulation routing DTO
    │   │   │   ├── 📁entities                              # Entities files
    │   │   │   │   ├── circulation-routing.entity.ts       # Circulation routing entity
    │   │   │   │   ├── circulation-status-code.entity.ts   # Circulation status code entity
    │   │   │   │   └── circulation.entity.ts               # Circulation entity
    │   │   │   ├── circulation.controller.ts                 # Circulation controller
    │   │   │   ├── circulation.module.ts                    # Circulation module
    │   │   │   └── circulation.service.ts                    # Circulation service
    │   │   ├── 📁correspondence                            # Correspondence files  
    │   │   │   ├── 📁dto
    │   │   │   │   ├── add-reference.dto.ts
    │   │   │   │   ├── create-correspondence.dto.ts
    │   │   │   │   ├── search-correspondence.dto.ts
    │   │   │   │   ├── submit-correspondence.dto.ts
    │   │   │   │   └── workflow-action.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   ├── correspondence-reference.entity.ts
    │   │   │   │   ├── correspondence-revision.entity.ts
    │   │   │   │   ├── correspondence-routing.entity.ts
    │   │   │   │   ├── correspondence-status.entity.ts
    │   │   │   │   ├── correspondence-sub-type.entity.ts
    │   │   │   │   ├── correspondence-type.entity.ts
    │   │   │   │   ├── correspondence.entity.ts
    │   │   │   │   ├── routing-template-step.entity.ts
    │   │   │   │   └── routing-template.entity.ts
    │   │   │   ├── correspondence.controller.spec.ts
    │   │   │   ├── correspondence.controller.ts
    │   │   │   ├── correspondence.module.ts
    │   │   │   ├── correspondence.service.spec.ts
    │   │   │   └── correspondence.service.ts
    │   │   ├── 📁document-numbering
    │   │   │   ├── 📁entities
    │   │   │   │   ├── document-number-counter.entity.ts
    │   │   │   │   └── document-number-format.entity.ts
    │   │   │   ├── 📁interfaces
    │   │   │   │   └── document-numbering.interface.ts
    │   │   │   ├── document-numbering.module.ts
    │   │   │   ├── document-numbering.service.spec.ts
    │   │   │   └── document-numbering.service.ts
    │   │   ├── 📁drawing
    │   │   │   ├── 📁dto
    │   │   │   │   ├── create-contract-drawing.dto.ts
    │   │   │   │   ├── create-shop-drawing-revision.dto.ts
    │   │   │   │   ├── create-shop-drawing.dto.ts
    │   │   │   │   ├── search-contract-drawing.dto.ts
    │   │   │   │   ├── search-shop-drawing.dto.ts
    │   │   │   │   └── update-contract-drawing.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   ├── contract-drawing-sub-category.entity.ts
    │   │   │   │   ├── contract-drawing-volume.entity.ts
    │   │   │   │   ├── contract-drawing.entity.ts
    │   │   │   │   ├── shop-drawing-main-category.entity.ts
    │   │   │   │   ├── shop-drawing-revision.entity.ts
    │   │   │   │   ├── shop-drawing-sub-category.entity.ts
    │   │   │   │   └── shop-drawing.entity.ts
    │   │   │   ├── contract-drawing.controller.ts
    │   │   │   ├── contract-drawing.service.ts
    │   │   │   ├── drawing-master-data.controller.ts
    │   │   │   ├── drawing-master-data.service.ts
    │   │   │   ├── drawing.module.ts
    │   │   │   ├── shop-drawing.controller.ts
    │   │   │   └── shop-drawing.service.ts
    │   │   ├── 📁json-schema
    │   │   │   ├── 📁dto
    │   │   │   │   ├── create-json-schema.dto.ts
    │   │   │   │   ├── search-json-schema.dto.ts
    │   │   │   │   └── update-json-schema.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   └── json-schema.entity.ts 
    │   │   │   ├── json-schema.controller.spec.ts
    │   │   │   ├── json-schema.controller.ts
    │   │   │   ├── json-schema.module.ts
    │   │   │   ├── json-schema.service.spec.ts
    │   │   │   └── json-schema.service.ts
    │   │   ├── 📁master
    │   │   │   ├── 📁dto
    │   │   │   │   ├── create-discipline.dto.ts
    │   │   │   │   ├── create-sub-type.dto.ts
    │   │   │   │   ├── create-tag.dto.ts
    │   │   │   │   ├── save-number-format.dto.ts
    │   │   │   │   ├── search-tag.dto.ts
    │   │   │   │   └── update-tag.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   ├── discipline.entity.ts
    │   │   │   │   └── tag.entity.ts
    │   │   │   ├── master.controller.ts
    │   │   │   ├── master.module.ts
    │   │   │   └── master.service.ts
    │   │   ├── 📁monitoring
    │   │   │   ├── 📁controllers
    │   │   │   │   └── health.controller.ts
    │   │   │   ├── 📁dto
    │   │   │   │   └── set-maintenance.dto.ts
    │   │   │   ├── 📁logger
    │   │   │   │   └── winston.config.ts
    │   │   │   ├── 📁services
    │   │   │   │   └── metrics.service.ts
    │   │   │   ├── monitoring.controller.ts
    │   │   │   ├── monitoring.module.ts
    │   │   │   └── monitoring.service.ts
    │   │   ├── 📁notification
    │   │   │   ├── 📁dto
    │   │   │   │   ├── create-notification.dto.ts
    │   │   │   │   └── search-notification.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   └── notification.entity.ts
    │   │   │   ├── notification-cleanup.service.ts
    │   │   │   ├── notification.controller.ts
    │   │   │   ├── notification.gateway.ts
    │   │   │   ├── notification.module.ts
    │   │   │   ├── notification.processor.ts
    │   │   │   └── notification.service.ts
    │   │   ├── 📁project
    │   │   │   ├── 📁dto
    │   │   │   │   ├── create-project.dto.ts
    │   │   │   │   ├── search-project.dto.ts
    │   │   │   │   └── update-project.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   ├── contract-organization.entity.ts
    │   │   │   │   ├── contract.entity.ts
    │   │   │   │   ├── organization.entity.ts
    │   │   │   │   ├── project-organization.entity.ts
    │   │   │   │   └── project.entity.ts
    │   │   │   ├── project.controller.spec.ts
    │   │   │   ├── project.controller.ts
    │   │   │   ├── project.module.ts
    │   │   │   ├── project.service.spec.ts
    │   │   │   └── project.service.ts
    │   │   ├── 📁rfa
    │   │   │   ├── 📁dto
    │   │   │   │   ├── create-rfa.dto.ts
    │   │   │   │   ├── search-rfa.dto.ts
    │   │   │   │   └── update-rfa.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   ├── rfa-approve-code.entity.ts
    │   │   │   │   ├── rfa-item.entity.ts
    │   │   │   │   ├── rfa-revision.entity.ts
    │   │   │   │   ├── rfa-status-code.entity.ts
    │   │   │   │   ├── rfa-type.entity.ts
    │   │   │   │   ├── rfa-workflow-template-step.entity.ts
    │   │   │   │   ├── rfa-workflow-template.entity.ts
    │   │   │   │   ├── rfa-workflow.entity.ts
    │   │   │   │   └── rfa.entity.ts
    │   │   │   ├── rfa.controller.ts
    │   │   │   ├── rfa.module.ts
    │   │   │   └── rfa.service.ts
    │   │   ├── 📁search
    │   │   │   ├── 📁dto
    │   │   │   │   └── search-query.dto.ts
    │   │   │   ├── search.controller.ts
    │   │   │   ├── search.module.ts
    │   │   │   └── search.service.ts
    │   │   ├── 📁transmittal
    │   │   │   ├── 📁dto
    │   │   │   │   ├── create-transmittal.dto.ts
    │   │   │   │   ├── search-transmittal.dto.ts
    │   │   │   │   └── update-transmittal.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   ├── transmittal-item.entity.ts
    │   │   │   │   └── transmittal.entity.ts
    │   │   │   ├── transmittal.controller.ts
    │   │   │   ├── transmittal.module.ts
    │   │   │   └── transmittal.service.ts
    │   │   ├── 📁user
    │   │   │   ├── 📁dto
    │   │   │   │   ├── assign-role.dto.ts
    │   │   │   │   ├── create-user.dto.ts
    │   │   │   │   ├── update-preference.dto.ts
    │   │   │   │   └── update-user.dto.ts
    │   │   │   ├── 📁entities
    │   │   │   │   ├── permission.entity.ts
    │   │   │   │   ├── role.entity.ts
    │   │   │   │   ├── user-assignment.entity.ts
    │   │   │   │   ├── user-preference.entity.ts
    │   │   │   │   └── user.entity.ts
    │   │   │   ├── user-assignment.service.ts
    │   │   │   ├── user-preference.service.ts
    │   │   │   ├── user.controller.ts
    │   │   │   ├── user.module.ts
    │   │   │   ├── user.service.spec.ts
    │   │   │   └── user.service.ts
    │   │   └── 📁workflow-engine
    │   │       ├── 📁dto
    │   │       │   ├── create-workflow-definition.dto.ts
    │   │       │   ├── evaluate-workflow.dto.ts
    │   │       │   ├── get-available-actions.dto.ts
    │   │       │   └── update-workflow-definition.dto.ts
    │   │       ├── 📁entities
    │   │       │   └── workflow-definition.entity.ts
    │   │       ├── 📁interfaces
    │   │       │   └── workflow.interface.ts
    │   │       ├── workflow-dsl.service.ts
    │   │       ├── workflow-engine.controller.ts
    │   │       ├── workflow-engine.module.ts
    │   │       ├── workflow-engine.service.spec.ts
    │   │       └── workflow-engine.service.ts
    │   ├── app.controller.spec.ts
    │   ├── app.controller.ts
    │   ├── app.module.ts
    │   ├── app.service.ts
    │   ├── main.ts
    │   └── redlock.d.ts
    ├── 📁test
    │   ├── app.e2e-spec.ts
    │   ├── jest-e2e.json
    │   ├── phase3-workflow.e2e-spec.ts
    │   └── simple.e2e-spec.ts
    ├─ 📁uploads
    │   └── 📁temp
    │       ├── 5a6d4c26-84b2-4c8a-b177-9fa267651a93.pdf
    │       └── d60d9807-a22d-4ca0-b99a-5d5d8b81b3e8.pdf
    ├── .editorconfig
    ├── .env
    ├── .gitignore
    ├── .prettierrc
    ├── docker-compose.override.yml.example
    ├── docker-compose.yml
    ├── eslint.config.mjs
    ├── Infrastructure Setup.yml
    ├── nest-cli.json
    ├── package-lock.json
    ├── package.json
    ├── pnpm-lock.yaml
    ├── README.md
    ├── tsconfig.build.json
    └── tsconfig.json