다크모드
FE 메인테이너 — Organization·Workspace 생성
화면과 데이터 흐름
- 목록:
/headquarters/console/workspace/general - 생성 시트:
SheetCreateWorkspaceArt.vue - 서버 seam:
organizationWorkspaceRepo.js,propertyMasterRepo.js - 즉시 문맥 반영:
useAccountContext.addWorkspaceRecord()
생성 시트는 활성 Organization subscription entitlement를 기본 선택한다. 사용자는 필요 없는 상품만 해제한다. Workspace 관리자를 자유 텍스트로 입력하지 않는다. 현재 인증한 Organization Owner/Admin은 새 Workspace에 각각 workspace.owner/workspace.admin으로 자동 투영되며, 동일 책임의 직접 Workspace Role을 중복 생성하지 않는다. 프로퍼티 에디션은 propertyMasterRepo.publicDataHealth()로 Leyve 중앙 연결 상태를 확인하고, 이름·주소를 searchPublicProperties()에 보내 후보를 조회한다. 조회 중에는 버튼을 비활성화하고 진행 문구를 유지한다. 선택 시 주소와 호실 수를 후보 값으로 채우고 snapshot을 생성 요청에 포함한다.
create_organization_workspace_with_property RPC 성공 후 반환 Workspace를 account context에 추가하고 생성 Workspace 범위로 전환한다. Workspace·권한·상품·공공데이터 저장이 한 번에 실패/성공하므로 부분 생성 재시도로 인한 중복 Workspace를 만들지 않는다. 실패 시 시트를 유지하고 서버 오류를 필드 영역 아래에 표시한다.
Workspace 선택 표면
AccountScopeSwitcherMol.vue와 WorkspaceSelectPag.vue는 정의되지 않은 list-item 조합을 사용하지 않는다. radio radio-card radio-md radio-primary + radio-content 정본을 사용하고, 컨테이너에 role="radiogroup"·명시적 라벨, 각 그룹 input에 공통 name을 둔다.
회귀 검증
- 새로고침·재로그인 뒤 Workspace가 유지된다.
- 계약하지 않은 module key는 서버가 거부한다.
- 동일 Organization 내 Workspace 코드 중복을 안내한다.
- 생성 중에는 중복 제출이 비활성화된다.
- 프로퍼티 에디션에서 공공데이터 후보 선택 후 주소·호실 수·snapshot이 같은 RPC로 전달된다.
- 공공데이터 미설정·조회 실패 시 생성 자체는 직접 입력값으로 계속할 수 있다.
- 서버 반환
short_name·주소·유닛 수를 재로그인 시 복원한다.