using GB5Shared.DTO.Framework.Criteria;
using GB5Shared.DTO.Framework.Login;
namespace MMBLL.Allocation
{
///
/// Interface defining the Business Logic Layer contract for Allocation operations.
/// Supports both SQL Server (GB5 default) and Oracle database routing.
///
public interface IAllocationBLL
{
///
/// Retrieves a single allocation record by its unique identifier.
///
Task GetAllocation(int AllocationId, LoginDTO LoginDTO);
///
/// Loads paginated allocation picklist data for the "Load From Allocation" screen.
/// Routes to the appropriate DAL method based on database type:
/// - SQL Server → LoadFromAllocationPicklist (optimized lazy-load query)
/// - Oracle → GetPendingNew (trigger-based pending allocation logic)
///
/// Zero-based starting index for pagination.
/// Maximum number of records to return per page.
/// Filter criteria including OU, item, header, biz type filters.
/// Current user session and database connection context.
/// JSON-serialized list of .
Task LoadFromAllocationPicklist(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO);
///
/// GB4 Source: AllocationService.GetPendingNewListForProductionPlan (Allocation.svc.cs),
/// GB4 route /Allocation/PendingAllocationSelectList. Returns AllocationNewDTO rows —
/// wired to GB5's /Allocation/GetSelectListTPendingAllocation endpoint since that route
/// name is the closest textual match to GB4's actual URL.
///
Task GetPendingNewListForProductionPlan(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO);
}
}