package contract

import (
	"apskel-pos-be/internal/models"

	"github.com/google/uuid"
)

type IngredientContract interface {
	Create(request *models.CreateIngredientRequest, organizationID uuid.UUID) (*models.IngredientResponse, error)
	GetByID(id uuid.UUID, organizationID uuid.UUID) (*models.IngredientResponse, error)
	GetAll(organizationID uuid.UUID, outletID *uuid.UUID, page, limit int, search string, isSemiFinished *bool) (*models.PaginatedResponse[models.IngredientResponse], error)
	Update(id uuid.UUID, request *models.UpdateIngredientRequest, organizationID uuid.UUID) (*models.IngredientResponse, error)
	Delete(id uuid.UUID, organizationID uuid.UUID) error
	UpdateStock(id uuid.UUID, quantity float64, organizationID uuid.UUID) (*models.IngredientResponse, error)
}
