using CashLineERP.Contracts.Inventory;

namespace CashLineERP.Application.Inventory;

public interface IReplenishmentRuleService
{
    IReadOnlyCollection<ReplenishmentRuleResponse> GetReplenishmentRules(bool activeOnly = false);
    ReplenishmentRuleResponse? GetReplenishmentRule(long replenishmentRuleId);
    ReplenishmentRuleResponse CreateReplenishmentRule(CreateReplenishmentRuleRequest request);
    ReplenishmentRuleResponse SubmitReplenishmentRule(long replenishmentRuleId, long actorUserId);
    ReplenishmentRuleResponse ApproveReplenishmentRule(long replenishmentRuleId, long actorUserId);
    ReplenishmentRuleResponse ActivateReplenishmentRule(long replenishmentRuleId, long actorUserId);
    ReplenishmentEvaluationResponse EvaluateReplenishment(ReplenishmentEvaluationRequest request);
    ReorderPlanningResponse BuildReorderPlan(ReorderPlanningRequest request);
    ReorderPlanHandoffResponse CreateOperationalHandoff(long actorUserId, ReorderPlanningRequest request);
}
