package easarelease

import "context"

type Service 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)
	GetActiveByHelicopter(ctx context.Context, helicopterID []byte) (*EASARelease, error)
	Sign(ctx context.Context, id []byte, signerID []byte) error
	Amend(ctx context.Context, currentID []byte, reason string, actor []byte) (newID []byte, err error)
}
