package handler

import (
	"apskel-pos-be/internal/appcontext"
	"apskel-pos-be/internal/contract"
	"context"
	"github.com/google/uuid"
)

type TableService interface {
	CreateTable(ctx context.Context, apctx *appcontext.ContextInfo, req *contract.CreateTableRequest) *contract.Response
	UpdateTable(ctx context.Context, id uuid.UUID, req *contract.UpdateTableRequest) *contract.Response
	DeleteTable(ctx context.Context, id uuid.UUID) *contract.Response
	GetTableByID(ctx context.Context, id uuid.UUID) *contract.Response
	ListTables(ctx context.Context, req *contract.ListTablesQuery) *contract.Response
	OccupyTable(ctx context.Context, tableID uuid.UUID, req *contract.OccupyTableRequest) *contract.Response
	ReleaseTable(ctx context.Context, tableID uuid.UUID, req *contract.ReleaseTableRequest) *contract.Response
	GetAvailableTables(ctx context.Context, outletID uuid.UUID) *contract.Response
	GetOccupiedTables(ctx context.Context, outletID uuid.UUID) *contract.Response
}
