using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using MMDAL.DTO.Shift; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MMBLL.Shift { /// /// Business Logic Layer interface for managing Shift operations. /// Provides methods to retrieve, insert/update, list, and delete shifts with business rules applied. /// public interface IShiftBLL { /// /// Retrieves the details of a single shift by its unique identifier. /// /// The unique identifier of the shift. /// The current user's login details. /// A JSON string representing the shift details. Task GetShift(int ShiftId, LoginDTO LoginDTO); /// /// Inserts a new shift or updates an existing shift. /// Automatically applies any business rules, such as setting Created/Modified fields. /// /// The shift data to save or update. /// The current user's login details. /// A JSON string indicating the success of the operation, optionally with the ShiftId. Task SaveShift(ShiftDTO ShiftDTO, LoginDTO LoginDTO); /// /// Retrieves a list of shifts based on specified criteria. /// Typically used to populate dropdowns or selection lists in the UI. /// /// Filter criteria for selecting shifts. /// The current user's login details. /// A JSON string representing a list of shifts. Task GetSelectListShift(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); /// /// Deletes a shift by its unique identifier. /// /// The unique identifier of the shift to delete. /// The current user's login details. /// A JSON string indicating success or failure of the delete operation. Task DeleteShift(int ShiftId, LoginDTO LoginDTO); } }