package fleetstatus

import (
	"context"
	"time"
)

type Repository interface {
	Create(ctx context.Context, row *FleetStatus) error
	Update(ctx context.Context, row *FleetStatus) error
	Delete(ctx context.Context, id []byte, deletedBy []byte) error
	GetByID(ctx context.Context, id []byte) (*FleetStatus, error)
	List(ctx context.Context, filter, sort string, limit, offset int) ([]FleetStatus, int64, error)
	LatestByHelicopterIDs(ctx context.Context, helicopterIDs [][]byte) (map[string]*FleetStatus, error)
	MarkServiced(ctx context.Context, id []byte, servicedAt time.Time, actorID []byte) error
	ListServiceHistoryByHelicopterID(ctx context.Context, helicopterID []byte, limit, offset int) ([]FleetStatusServiceLog, int64, error)
	HelicopterIDByMissionID(ctx context.Context, missionID []byte) ([]byte, error)
	HelicopterIDsWithFleetStatus(ctx context.Context) ([][]byte, error)
}
