package incheon.ags.mrb.share.mapper;


import incheon.ags.mrb.share.vo.RecipeShrnGroupVO;

import java.util.List;

/**
 * 레시피 공유 그룹 매퍼 인터페이스
 * - 레시피 공유 그룹 정보 관리
 */
@org.egovframe.rte.psl.dataaccess.mapper.Mapper @incheon.com.config.annotation.MainDB public interface RecipeShrnGroupMapper {

    /**
     * 현재 사용자의 그룹 목록 조회 (총 건수 포함)
     * @param recipeShrnGroupVO 검색 조건 (userId 필수)
     * @return 그룹 목록
     * @throws Exception
     */
    List<RecipeShrnGroupVO> selectMyGroupList(RecipeShrnGroupVO recipeShrnGroupVO) throws Exception;

    /**
     * 그룹 상세 조회
     * @param groupId 그룹 ID
     * @return 그룹 상세 정보
     * @throws Exception
     */
    RecipeShrnGroupVO selectGroupDetail(Integer groupId) throws Exception;

    /**
     * 그룹 생성
     * @param recipeShrnGroupVO 그룹 정보
     * @throws Exception
     */
    void insertGroup(RecipeShrnGroupVO recipeShrnGroupVO) throws Exception;

    /**
     * 그룹 수정
     * @param recipeShrnGroupVO 그룹 정보
     * @throws Exception
     */
    void updateGroup(RecipeShrnGroupVO recipeShrnGroupVO) throws Exception;

    /**
     * 그룹 삭제
     * @param groupId 그룹 ID
     * @throws Exception
     */
    void deleteGroup(Integer groupId) throws Exception;
}
