package airrescuechecklist

import "context"

type Service interface {
	CreateBulk(ctx context.Context, rows []ChecklistCreateInput) error
	UpdateChecklist(ctx context.Context, row *AirRescuerChecklist) error
	UpdateChecklistWithNewItems(ctx context.Context, row *AirRescuerChecklist, newItems []AirRescuerChecklistItem) error
	DeleteChecklist(ctx context.Context, id []byte, deletedBy []byte) error
	CreateChecklistItem(ctx context.Context, row *AirRescuerChecklistItem) error
	CreateChecklistItems(ctx context.Context, checklistID []byte, rows []AirRescuerChecklistItem) error
	ReorderChecklistItems(ctx context.Context, checklistID []byte, rows []ChecklistItemReorderInput, updatedBy []byte) error
	UpdateChecklistItem(ctx context.Context, row *AirRescuerChecklistItem) error
	DeleteChecklistItem(ctx context.Context, id []byte, deletedBy []byte) error

	GetChecklistByID(ctx context.Context, id []byte) (*ChecklistHeaderView, error)
	GetChecklistItemByID(ctx context.Context, id []byte) (*ChecklistItemView, error)
	ListChecklistHeaders(ctx context.Context, filter ChecklistHeaderFilter) ([]ChecklistHeaderView, error)
	ListChecklistItemsByChecklistIDs(ctx context.Context, checklistIDs [][]byte) ([]ChecklistItemView, error)
	ListHEMSBases(ctx context.Context, filter HEMSBaseFilter) ([]HEMSBaseView, error)
}
