package com.samsung.sample.approval.internal;

import com.samsung.approval.entity.ApprovalStep;
import com.samsung.approval.enums.ApprovalDocStatus;
import com.samsung.core.entity.PagingResult;
import com.samsung.sample.approval.internal.dto.InternalSampleSearchDto;
import com.samsung.sample.approval.internal.entity.InternalApprovalSampleDocument;

import java.util.List;

public interface InternalApprovalSampleService {
	
    /**
     * 결재문서 목록 조회(페이징).
     * @param internalSampleSearchDto 조회조건
     * @return 결재문서 목록
     */
    PagingResult<InternalApprovalSampleDocument> getSampleApprovalDocumentPagingList(InternalSampleSearchDto internalSampleSearchDto);
    
    /**
     * 결재문서 상세조회.
     * @param docId 문서ID
     * @return 결재문서 상세정보
     */
    InternalApprovalSampleDocument getSampleApprovalDocument(String docId);
    
    /**
     * 결재문서 저장.
     * @param internalApprovalSampleDocument 결재문서 정보
     * @return
     */
    void insertSampleApprovalDocument(InternalApprovalSampleDocument internalApprovalSampleDocument);
    
    /**
     * 결재문서 수정.
     * @param internalApprovalSampleDocument 결재문서 정보
     * @return
     */
    void modifySampleApprovalDocument(InternalApprovalSampleDocument internalApprovalSampleDocument);
    
    /**
     * 결재문서 삭제.
     * @param internalApprovalSampleDocument 결재문서 정보
     * @return
     */
    void deleteSampleApprovalDocument(InternalApprovalSampleDocument internalApprovalSampleDocument);
    
    /**
     * 결재문서 상태 업데이트.
     * @param docId 문서ID
     * @param approvalDocStatus 결재상태
     */
    void updateSampleApprovalDocument(String docId, ApprovalDocStatus approvalDocStatus);
}