/*
**************************************************************************************
* Program Name  : DesignationService.java
* Author        : Kawade Swapnali
* Date          : Feb 12, 2026
* System Name   : gswbs
* Purpose       : Service interface for Designation module.
**************************************************************************************
*/

package com.coder.designation.service;

import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import com.coder.designation.model.Designation;
import com.coder.designation.model.SaveDesignationResponse;

public interface DesignationService {
	
	/* FETCH SINGLE DESIGNATION BY DESIGNATION ID AND LOGIN ID */
	Designation getSingleDesignation(String designationId);
	
	/* FETCH ALL DESIGNATION */
	List<Designation> fetchAllDesignation();

	/* FETCH ALL DESIGNATIONS LOGIN-WISE */
	List<Designation> getAllDesignationByLoginId(String loginId);

	/*
	 * SAVE MULTIPLE DESIGNATIONS AT ONE TIME AND CREATE EACH DESIGNATION ID
	 * AUTOMATICALLY BY DES/CURRENT YEAR/NUMBER
	 * FOR EXAMPLE: DES/2026/001
	 */
	SaveDesignationResponse saveAllDesignation(List<Designation> designationList);

	/* UPDATE SINGLE DESIGNATION BY DESIGNATION ID AND LOGIN ID */
	Designation update(String designationId, Designation designation);

	/* DELETE MULTIPLE DESIGNATIONS AT ONE TIME BY DESIGNATION ID LIST */
	boolean multipalDelete(List<String> designationIds);
	
	/* IMPORT THE DESIGNATION BY USING EXCEL FILE */
    public List<Designation> importFromExcel(MultipartFile file) throws Exception;
}