package easarelease

import "context"

type Repository interface {
	Create(ctx context.Context, row *EASARelease) error
	Update(ctx context.Context, row *EASARelease) error
	Delete(ctx context.Context, id []byte, deletedBy []byte) error
	GetByID(ctx context.Context, id []byte) (*EASARelease, error)
	GetByFlightID(ctx context.Context, flightID []byte) (*EASARelease, error)
	GetByComplaintID(ctx context.Context, complaintID []byte) (*EASARelease, error)
	ListByHelicopter(ctx context.Context, helicopterID []byte) ([]EASARelease, error)
	GetLatestByHelicopter(ctx context.Context, helicopterID []byte) (*EASARelease, error)
	GetActiveByHelicopter(ctx context.Context, helicopterID []byte) (*EASARelease, error)
	VoidByID(ctx context.Context, id []byte, reason string, actor []byte) error
}
