1. 가게 생성
graph TD
Owner((Owner)) --> CreateStore[가게 생성 요청]
CreateStore --> ValidateOwner[점주 유효성 검사]
ValidateOwner --> SaveStore[가게 저장]
ValidateOwner --> InvalidOwner[예외 반환: 유효하지 않은 점주]
2. 가게 단건 조회
graph TD
Client --findStore--> StoreService["가게 단건 조회"]
StoreService--findStore--> StoreReader["저장소로부터 Store 정보를 가져옴"]
3. 가게 정보 수정
graph TD
Client -- updateStoreInfo(ownerId, storeId, storeInfo) --> StoreService["가게 수정"]
StoreService -- findOwner(ownerId) --> OwnerReader["점주 조회"]
OwnerReader -- 없음 --> Error1["에러 반환: NOT_VALID_OWNER"]
StoreService -- readSingleStore(storeId) --> StoreReader["기존 가게 조회"]
StoreReader -- 없음 --> Error2["에러 반환: NOT_FOUND_STORE"]
StoreService -- store.ownerId == ownerId? --> OwnershipCheck["점주 ID 일치 여부 확인"]
OwnershipCheck -- 불일치 --> Error3["에러 반환: NOT_EQUAL_STORE_OWNER"]
OwnershipCheck -- 일치함 --> StoreWriter["가게 정보 수정"]
4. 가게 삭제
graph TD
Client --deleteStore(ownerId, storeId)--> StoreService["가게 삭제"]
StoreService --findOwner(ownerId)--> OwnerReader["점주 조회"]
OwnerReader --없음--> Error1["에러 반환: NOT_VALID_OWNER"]
StoreService --readSingleStore(storeId)--> StoreReader["가게 조회"]
StoreReader --없음--> Error2["에러 반환: NOT_FOUND_STORE"]
StoreService --store.ownerId == ownerId?--> OwnershipCheck["점주 ID 일치 여부 확인"]
OwnershipCheck --불일치--> Error3["에러 반환: NOT_EQUAL_STORE_OWNER"]
OwnershipCheck --일치함--> StoreWriter["가게 삭제 수행"]