Skip to content

feat: [alt-216] 근무자 색상 코드 변경 기능 추가#85

Merged
ysw789 merged 5 commits into
devfrom
feat/alt-216
May 10, 2026
Merged

feat: [alt-216] 근무자 색상 코드 변경 기능 추가#85
ysw789 merged 5 commits into
devfrom
feat/alt-216

Conversation

@ysw789
Copy link
Copy Markdown
Contributor

@ysw789 ysw789 commented May 10, 2026

변경사항

  • 근무자 색상 코드 엔티티 필드 및 UseCase 추가
  • 근무자 색상 코드 변경 DTO 및 응답 필드 추가
  • 근무자 색상 코드 변경 API 엔드포인트 추가

Summary by CodeRabbit

  • 새로운 기능
    • 근무자별 색상 코드 지정으로 일정 캘린더에서 근무자를 색상으로 구분할 수 있습니다.
    • 관리자가 근무자의 표시 색상을 변경할 수 있는 PATCH API가 추가되었습니다.
    • 기본 색상은 #9CA3AF이며, 16진수 형식(#RRGGBB) 입력을 검증하고 중복 색상 충돌을 방지합니다.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 10, 2026

📝 Walkthrough

Walkthrough

관리자가 워크스페이스 근무자의 표시 색상 코드를 설정·수정하는 기능을 도메인 필드·커맨드·유스케이스, 저장소 쿼리·프로젝션, 요청/응답 DTO, 컨트롤러 엔드포인트까지 추가·연결했습니다.

변경 사항

근무자 색상 코드 업데이트

Layer / File(s) Summary
도메인 모델
src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java
DEFAULT_COLOR_CODE 상수, colorCode JPA 필드(color_code), updateColorCode(String) 추가.
도메인 커맨드
src/main/java/com/dreamteam/alter/domain/workspace/command/UpdateWorkspaceWorkerColorCommand.java
색상 코드 하나를 캡슐화하는 커맨드 클래스 추가 (of(String) 팩토리).
포트 인터페이스
src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/ManagerUpdateWorkspaceWorkerColorCodeUseCase.java
관리자 색상 코드 업데이트 유스케이스 포트 추가.
저장소 계약
src/main/java/com/dreamteam/alter/domain/workspace/port/outbound/WorkspaceWorkerQueryRepository.java
활성화된 근무자의 색상 코드 존재 여부 확인용 existsActivatedByWorkspaceAndColorCode(...) 메서드 추가.
저장소 구현
src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceWorkerQueryRepositoryImpl.java
QueryDSL로 색상 코드 중복 체크 구현 추가 및 관련 메서드 위치 조정.
응답 엔티티 (readonly)
src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/readonly/ManagerWorkspaceWorkerListResponse.java
관리자용 근무자 목록 응답에 colorCode 필드 추가.
저장소 쿼리
src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceQueryRepositoryImpl.java
getWorkspaceWorkerListWithCursor 프로젝션과 groupByqWorkspaceWorker.colorCode 포함.
비즈니스 로직
src/main/java/com/dreamteam/alter/application/workspace/usecase/ManagerUpdateWorkspaceWorkerColorCode.java
워크스페이스 존재 및 소유권 확인, 색상 충돌 검증(기본값 제외), 색상 코드 업데이트를 수행하는 @Service 구현 추가(@Transactional).
요청 DTO
src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/dto/UpdateWorkspaceWorkerColorRequestDto.java
colorCode 필드 추가 (@NotBlank, @Pattern(^#[0-9A-Fa-f]{6}$)) 및 Swagger 메타데이터.
컨트롤러 인터페이스
src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceControllerSpec.java
PATCH /{workspaceId}/workers/{workerId}/color 엔드포인트를 Swagger 응답 문서(200, 400, 404, 409)와 함께 선언.
컨트롤러 구현
src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceController.java
ManagerUpdateWorkspaceWorkerColorCodeUseCase 주입 및 updateWorkspaceWorkerColorCode 핸들러 구현 추가.
응답 DTOs
src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/dto/ManagerWorkspaceWorkerListResponseDto.java, src/main/java/com/dreamteam/alter/adapter/inbound/common/dto/WorkerSummaryDto.java
관리자 근무자 목록 응답 및 근무자 요약에 colorCode 필드 추가 및 팩토리에서 값 설정.

Estimated code review effort

🎯 3 (보통) | ⏱️ ~25분

제안 레이블

FEAT

제안 리뷰어

  • hodoon
  • juny0955
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 근무자 색상 코드 변경 기능 추가라는 주요 변경사항을 명확하고 간결하게 설명하며, 모든 파일 변경사항의 핵심 목적을 정확히 반영합니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/alt-216

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java (1)

14-43: ⚠️ Potential issue | 🔴 Critical | 🏗️ Heavy lift

도메인 엔티티에 인프라 의존성이 존재합니다.

도메인 레이어 가이드라인에 따르면 "ZERO infrastructure dependencies (no Spring, no JPA annotations, no external libs)"를 준수해야 하지만, 이 엔티티는 JPA 어노테이션(@Entity, @Column, @JoinColumn 등)과 Spring Data 어노테이션(@CreatedDate, @LastModifiedDate, AuditingEntityListener)을 사용하고 있습니다.

헥사고날 아키텍처를 엄격하게 적용하려면 순수 도메인 모델과 별도의 영속성 매핑을 분리해야 합니다.

As per coding guidelines: "도메인 레이어는 ZERO infrastructure dependencies (no Spring, no JPA annotations, no external libs)를 준수해야 합니다."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java`
around lines 14 - 43, The WorkspaceWorker domain class contains infrastructure
concerns (JPA/Spring annotations like `@Entity`, `@Table`, `@Id`, `@GeneratedValue`,
`@ManyToOne`, `@JoinColumn`, `@Enumerated`, `@Column`,
`@EntityListeners`(AuditingEntityListener.class)) which violates the
zero-infrastructure rule; refactor by stripping all persistence and Spring
annotations from the domain WorkspaceWorker (and keep constants like
DEFAULT_COLOR_CODE and domain fields such as id, workspace, user, status,
colorCode) and move the annotated mapping into a new infrastructure-side class
(e.g., WorkspaceWorkerEntity) that contains the JPA annotations and mapping to
Workspace and User entities; implement conversion methods or a mapper in the
repository layer to translate between WorkspaceWorker and WorkspaceWorkerEntity
and remove any auditing annotations from the pure domain model.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceControllerSpec.java`:
- Around line 102-114: The 404 ApiResponse example in
ManagerWorkspaceControllerSpec (the ApiResponse block for "존재하지 않는 업장 또는 근무자")
uses an inconsistent error code ("B008"); update the ExampleObject value for the
"존재하지 않는 업장입니다." example to use the correct error code "B019" so it matches the
existing spec/ErrorCode mapping in this class.

In
`@src/main/java/com/dreamteam/alter/application/workspace/usecase/ManagerUpdateWorkspaceWorkerColorCode.java`:
- Line 3: The class ManagerUpdateWorkspaceWorkerColorCode is importing and
depending on the adapter DTO UpdateWorkspaceWorkerColorRequestDto, breaking the
application-layer boundary; replace that direct reference with a
use-case-specific request/command model (e.g., create a
UpdateWorkspaceWorkerColorCommand in the application or domain/application
package) and update the handler method(s) in
ManagerUpdateWorkspaceWorkerColorCode to accept that command instead of
UpdateWorkspaceWorkerColorRequestDto; map incoming adapter DTOs to the new
command at the adapter/inbound layer (controller/mapper) so the application
package has no direct dependency on adapter classes.
- Around line 41-50: There is a race between the
existsActivatedByWorkspaceAndColorCode check and worker.updateColorCode which
can allow duplicate color codes under concurrency; fix by enforcing uniqueness
at the DB and handling constraint violations or by using a DB lock: add a
DB-level unique constraint/partial index on (workspace_id, color_code) for
activated workers (and exclude DEFAULT_COLOR_CODE as needed), and in
ManagerUpdateWorkspaceWorkerColorCode wrap the update in a transaction and catch
the resulting DataIntegrityViolationException (or the JPA/Persistence exception)
when saving/updating the worker to translate it into
CustomException(ErrorCode.CONFLICT, ...); alternatively, obtain a row lock first
via repository method (e.g., lockByIdForUpdate or findByIdForUpdate) before
calling workspaceWorkerQueryRepository.existsActivatedByWorkspaceAndColorCode
and worker.updateColorCode to prevent concurrent inserts.

In
`@src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java`:
- Around line 76-78: The updateColorCode method on WorkspaceWorker must enforce
domain invariants: add null check, ensure the value matches hex color regex
^#[0-9A-Fa-f]{6}$ and enforce expected length (7 characters including '#'); if
validation fails throw a clear runtime/domain exception (e.g.,
IllegalArgumentException or a custom WorkspaceDomainException). Update
WorkspaceWorker.updateColorCode to perform these checks before assigning
this.colorCode so invalid values never get set.

In
`@src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/ManagerUpdateWorkspaceWorkerColorCodeUseCase.java`:
- Around line 1-8: The inbound port ManagerUpdateWorkspaceWorkerColorCodeUseCase
currently depends on the adapter DTO UpdateWorkspaceWorkerColorRequestDto;
change the port to accept a domain-safe type instead (either a primitive like
String colorCode or a domain command record such as
UpdateWorkerColorCodeCommand) so the domain layer does not depend on adapter
types; create the new command record inside the domain
workspace.port.inbound.command package (e.g., UpdateWorkerColorCodeCommand with
a String colorCode and optional validation) and update the execute signature on
ManagerUpdateWorkspaceWorkerColorCodeUseCase to accept that command (keeping
ManagerActor, workspaceId, workerId unchanged), then update the adapter layer to
map UpdateWorkspaceWorkerColorRequestDto to the new command before calling the
port.

---

Outside diff comments:
In
`@src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java`:
- Around line 14-43: The WorkspaceWorker domain class contains infrastructure
concerns (JPA/Spring annotations like `@Entity`, `@Table`, `@Id`, `@GeneratedValue`,
`@ManyToOne`, `@JoinColumn`, `@Enumerated`, `@Column`,
`@EntityListeners`(AuditingEntityListener.class)) which violates the
zero-infrastructure rule; refactor by stripping all persistence and Spring
annotations from the domain WorkspaceWorker (and keep constants like
DEFAULT_COLOR_CODE and domain fields such as id, workspace, user, status,
colorCode) and move the annotated mapping into a new infrastructure-side class
(e.g., WorkspaceWorkerEntity) that contains the JPA annotations and mapping to
Workspace and User entities; implement conversion methods or a mapper in the
repository layer to translate between WorkspaceWorker and WorkspaceWorkerEntity
and remove any auditing annotations from the pure domain model.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: ff9eff96-cd06-42f5-916e-4b49a60328b0

📥 Commits

Reviewing files that changed from the base of the PR and between c8102a0 and bf9e97e.

📒 Files selected for processing (12)
  • src/main/java/com/dreamteam/alter/adapter/inbound/common/dto/WorkerSummaryDto.java
  • src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceController.java
  • src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceControllerSpec.java
  • src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/dto/ManagerWorkspaceWorkerListResponseDto.java
  • src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/dto/UpdateWorkspaceWorkerColorRequestDto.java
  • src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceQueryRepositoryImpl.java
  • src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/WorkspaceWorkerQueryRepositoryImpl.java
  • src/main/java/com/dreamteam/alter/adapter/outbound/workspace/persistence/readonly/ManagerWorkspaceWorkerListResponse.java
  • src/main/java/com/dreamteam/alter/application/workspace/usecase/ManagerUpdateWorkspaceWorkerColorCode.java
  • src/main/java/com/dreamteam/alter/domain/workspace/entity/WorkspaceWorker.java
  • src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/ManagerUpdateWorkspaceWorkerColorCodeUseCase.java
  • src/main/java/com/dreamteam/alter/domain/workspace/port/outbound/WorkspaceWorkerQueryRepository.java

ysw789 added 2 commits May 10, 2026 19:05
- UpdateWorkspaceWorkerColorCommand 도메인 Command 클래스 신규 생성
- 인바운드 포트(ManagerUpdateWorkspaceWorkerColorCodeUseCase)에서 어댑터 DTO 의존 제거
- UseCase 구현체에서 Command 사용으로 변경
- 컨트롤러에서 DTO → Command 변환 후 호출 (어댑터 검증 책임 유지)

헥사고날 아키텍처 경계 준수 (CodeRabbit 리뷰 #2, #5 반영)
- 409 응답의 불명시 ErrorCode B026 → B020(CONFLICT)으로 수정
- 실제 UseCase가 throw하는 ErrorCode.CONFLICT와 일치하도록 정정
- 404 응답 예시(B008 업장, B019 근무자)는 정의된 코드로 유지

Swagger 문서 정합성 개선 (CodeRabbit 리뷰 #1 + 추가 발견 반영)
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
src/main/java/com/dreamteam/alter/application/workspace/usecase/ManagerUpdateWorkspaceWorkerColorCode.java (1)

41-50: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

색상 중복 검사와 갱신 사이에 TOCTOU 레이스가 남아 있습니다.

Line 41~50은 동시 요청에서 둘 다 exists... == false를 통과한 뒤 동일 색상으로 갱신될 수 있습니다. DB 유니크 제약(조건부 포함) 또는 락 기반으로 무결성을 강제하고, 제약 위반을 ErrorCode.CONFLICT로 변환해 주세요.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/main/java/com/dreamteam/alter/application/workspace/usecase/ManagerUpdateWorkspaceWorkerColorCode.java`
around lines 41 - 50, The current check using
workspaceWorkerQueryRepository.existsActivatedByWorkspaceAndColorCode(...)
before worker.updateColorCode(...) has a TOCTOU race; enforce uniqueness at the
DB level (add a conditional unique constraint/index on (workspace_id,
color_code, activated) or use a row lock via SELECT ... FOR UPDATE around the
worker update) and handle any resulting constraint/lock violation by catching
the DB exception (e.g., DataIntegrityViolationException / SQLException) in the
use case (ManagerUpdateWorkspaceWorkerColorCode) and rethrowing as new
CustomException(ErrorCode.CONFLICT, "이미 사용 중인 근무자 색상입니다."); keep the pre-check
if desired but rely on the DB constraint/lock as the source of truth and
reference the methods
workspaceWorkerQueryRepository.existsActivatedByWorkspaceAndColorCode and
worker.updateColorCode when making the change.
src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceControllerSpec.java (1)

107-114: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

404 에러 예시 코드가 서로 뒤바뀐 것으로 보입니다.

Line 109~113에서 "존재하지 않는 업장입니다.""근무자를 찾을 수 없습니다."의 코드 매핑이 파일 내 다른 스펙과 불일치합니다. 예시 코드를 실제 ErrorCode 매핑과 동일하게 맞춰 주세요.

📝 제안 수정안
                     `@ExampleObject`(
                         name = "존재하지 않는 업장입니다.",
-                        value = "{\"code\" : \"B008\"}"
+                        value = "{\"code\" : \"B019\"}"
                     ),
                     `@ExampleObject`(
                         name = "근무자를 찾을 수 없습니다.",
-                        value = "{\"code\" : \"B019\"}"
+                        value = "{\"code\" : \"B008\"}"
                     ),
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceControllerSpec.java`
around lines 107 - 114, In ManagerWorkspaceControllerSpec swap the JSON values
of the two `@ExampleObject` annotations so the name "존재하지 않는 업장입니다." maps to the
correct error code and "근무자를 찾을 수 없습니다." maps to its correct code (i.e., correct
the reversed mappings between the two ExampleObject entries currently using
codes "B008" and "B019"); update the two `@ExampleObject` value strings to match
the actual ErrorCode enum mapping used elsewhere in the specs to keep them
consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@src/main/java/com/dreamteam/alter/domain/workspace/command/UpdateWorkspaceWorkerColorCommand.java`:
- Around line 3-11: The UpdateWorkspaceWorkerColorCommand class currently uses
Lombok annotations (`@Getter`, `@Builder`, `@AllArgsConstructor`, AccessLevel.PRIVATE)
which introduces an external-library dependency into the domain layer; replace
Lombok with plain Java by removing those annotations and implementing explicit
private final fields, a private all-args constructor, public getters for each
field, and a builder or static factory implemented manually inside
UpdateWorkspaceWorkerColorCommand (or a nested static Builder class) to preserve
the creation API while keeping the domain layer free of external dependencies.

---

Duplicate comments:
In
`@src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceControllerSpec.java`:
- Around line 107-114: In ManagerWorkspaceControllerSpec swap the JSON values of
the two `@ExampleObject` annotations so the name "존재하지 않는 업장입니다." maps to the
correct error code and "근무자를 찾을 수 없습니다." maps to its correct code (i.e., correct
the reversed mappings between the two ExampleObject entries currently using
codes "B008" and "B019"); update the two `@ExampleObject` value strings to match
the actual ErrorCode enum mapping used elsewhere in the specs to keep them
consistent.

In
`@src/main/java/com/dreamteam/alter/application/workspace/usecase/ManagerUpdateWorkspaceWorkerColorCode.java`:
- Around line 41-50: The current check using
workspaceWorkerQueryRepository.existsActivatedByWorkspaceAndColorCode(...)
before worker.updateColorCode(...) has a TOCTOU race; enforce uniqueness at the
DB level (add a conditional unique constraint/index on (workspace_id,
color_code, activated) or use a row lock via SELECT ... FOR UPDATE around the
worker update) and handle any resulting constraint/lock violation by catching
the DB exception (e.g., DataIntegrityViolationException / SQLException) in the
use case (ManagerUpdateWorkspaceWorkerColorCode) and rethrowing as new
CustomException(ErrorCode.CONFLICT, "이미 사용 중인 근무자 색상입니다."); keep the pre-check
if desired but rely on the DB constraint/lock as the source of truth and
reference the methods
workspaceWorkerQueryRepository.existsActivatedByWorkspaceAndColorCode and
worker.updateColorCode when making the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 96368448-537e-4fe0-8d18-2014a8a256a8

📥 Commits

Reviewing files that changed from the base of the PR and between bf9e97e and a0024da.

📒 Files selected for processing (5)
  • src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceController.java
  • src/main/java/com/dreamteam/alter/adapter/inbound/manager/workspace/controller/ManagerWorkspaceControllerSpec.java
  • src/main/java/com/dreamteam/alter/application/workspace/usecase/ManagerUpdateWorkspaceWorkerColorCode.java
  • src/main/java/com/dreamteam/alter/domain/workspace/command/UpdateWorkspaceWorkerColorCommand.java
  • src/main/java/com/dreamteam/alter/domain/workspace/port/inbound/ManagerUpdateWorkspaceWorkerColorCodeUseCase.java

@ysw789 ysw789 merged commit 1efdcf4 into dev May 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant