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["가게 삭제 수행"]