package operation

import "context"

type HEMSOperationService interface {
	Create(ctx context.Context, operation *HEMSOperation) error
	Update(ctx context.Context, operation *HEMSOperation) error
	Delete(ctx context.Context, id []byte, deletedBy []byte) error
	GetByID(ctx context.Context, id []byte) (*HEMSOperation, error)
	List(ctx context.Context, filter string, sort string, limit, offset int) ([]HEMSOperation, int64, error)
}

type HEMSOperationCategoryService interface {
	Create(ctx context.Context, category *HEMSOperationCategory) error
	Update(ctx context.Context, category *HEMSOperationCategory) error
	Delete(ctx context.Context, id []byte, deletedBy []byte) error
	GetByID(ctx context.Context, id []byte) (*HEMSOperationCategory, error)
	List(ctx context.Context, filter string, sort string, limit, offset int) ([]HEMSOperationCategory, int64, error)
}

type HEMSOperationalDataService interface {
	Create(ctx context.Context, row *HEMSOperationalData) error
	Update(ctx context.Context, row *HEMSOperationalData) error
	Delete(ctx context.Context, id []byte, deletedBy []byte) error
	GetByID(ctx context.Context, id []byte) (*HEMSOperationalData, error)
	List(ctx context.Context, filter, sort string, limit, offset int) ([]HEMSOperationalData, int64, error)
}
