32 lines
1.8 KiB
Go
32 lines
1.8 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/RyanCopley/skybridge/faas/internal/domain"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// FunctionRepository provides CRUD operations for functions
|
|
type FunctionRepository interface {
|
|
Create(ctx context.Context, function *domain.FunctionDefinition) (*domain.FunctionDefinition, error)
|
|
GetByID(ctx context.Context, id uuid.UUID) (*domain.FunctionDefinition, error)
|
|
GetByName(ctx context.Context, appID, name string) (*domain.FunctionDefinition, error)
|
|
Update(ctx context.Context, id uuid.UUID, updates *domain.UpdateFunctionRequest) (*domain.FunctionDefinition, error)
|
|
Delete(ctx context.Context, id uuid.UUID) error
|
|
List(ctx context.Context, appID string, limit, offset int) ([]*domain.FunctionDefinition, error)
|
|
GetByAppID(ctx context.Context, appID string) ([]*domain.FunctionDefinition, error)
|
|
}
|
|
|
|
// ExecutionRepository provides CRUD operations for function executions
|
|
type ExecutionRepository interface {
|
|
Create(ctx context.Context, execution *domain.FunctionExecution) (*domain.FunctionExecution, error)
|
|
GetByID(ctx context.Context, id uuid.UUID) (*domain.FunctionExecution, error)
|
|
Update(ctx context.Context, id uuid.UUID, execution *domain.FunctionExecution) (*domain.FunctionExecution, error)
|
|
Delete(ctx context.Context, id uuid.UUID) error
|
|
List(ctx context.Context, functionID *uuid.UUID, limit, offset int) ([]*domain.FunctionExecution, error)
|
|
GetByFunctionID(ctx context.Context, functionID uuid.UUID, limit, offset int) ([]*domain.FunctionExecution, error)
|
|
GetByStatus(ctx context.Context, status domain.ExecutionStatus, limit, offset int) ([]*domain.FunctionExecution, error)
|
|
UpdateStatus(ctx context.Context, id uuid.UUID, status domain.ExecutionStatus) error
|
|
GetRunningExecutions(ctx context.Context) ([]*domain.FunctionExecution, error)
|
|
} |