package com.bankaudit.service;

import java.util.List;

import com.bankaudit.dto.DataTableResponse;
import com.bankaudit.dto.DeriveStatementUpdateDto;
import com.bankaudit.dto.process.DeriveStatementDto;
import com.bankaudit.model.MaintReportStandardStmt;
import com.bankaudit.model.MaintReportStandardStmtWrk;

public interface MaintReportStandardStmtService {

	void createMaintReportStandardStmt(MaintReportStandardStmt maintReportStandardStmt) throws Exception;

	void updateMaintReportStandardStmt(MaintReportStandardStmt maintReportStandardStmt);

	MaintReportStandardStmt getMaintReportStandardStmt(Integer legalEntityCode, String mappingId, String status);

	DataTableResponse getAllMaintReportStandardStmt(Integer legalEntityCode, String search, Integer orderColumn, String orderDirection, Integer page,
			Integer size);

	void deleteMaintReportStandardStmt(Integer legalEntityCode, String mappingId, String status);

	boolean checkMaintReportStandardStmtExsits(Integer legalEntityCode, String mappingId);

	MaintReportStandardStmt getMaintReportStandardStmt(Integer legalEntityCodeStr, String mappingId);

	MaintReportStandardStmt getMaintReportStandardStmtWrk(Integer legalEntityCode, String mappingId);
	
	// Derive statements fetch
	List<DeriveStatementUpdateDto> getDeriveStatementById(Integer legalEntityCode, String statementId, String auditTypeCode);
	
	void updateDeriveStatementById(DeriveStatementUpdateDto drvDto);
	

}
