package handler import ( "apskel-pos-be/internal/models" "context" "github.com/google/uuid" ) type IngredientService interface { CreateIngredient(ctx context.Context, req *models.CreateIngredientRequest) (*models.IngredientResponse, error) UpdateIngredient(ctx context.Context, id uuid.UUID, req *models.UpdateIngredientRequest) (*models.IngredientResponse, error) DeleteIngredient(ctx context.Context, id uuid.UUID) error GetIngredientByID(ctx context.Context, id uuid.UUID) (*models.IngredientResponse, error) ListIngredients(ctx context.Context, organizationID uuid.UUID, outletID *uuid.UUID, page, limit int, search string) (*models.PaginatedResponse[models.IngredientResponse], error) UpdateComposition(ctx context.Context, id uuid.UUID, req *models.UpdateIngredientCompositionRequest) (*models.IngredientCompositionResponse, error) DeleteComposition(ctx context.Context, id uuid.UUID) (*models.IngredientResponse, error) AddCompositions(ctx context.Context, parentID uuid.UUID, req *models.AddIngredientCompositionsRequest) (*models.AddIngredientCompositionsResponse, error) }