package reserveac

import (
	"context"

	shareddto "wucher/internal/transport/http/dto/shared"
)

type ReserveAcService interface {
	Create(ctx context.Context, row *ReserveAc) error
	Update(ctx context.Context, row *ReserveAc) error
	Delete(ctx context.Context, id []byte, deletedBy []byte) error
	GetByID(ctx context.Context, id []byte) (*ReserveAc, error)
	GetActiveByInspectionID(ctx context.Context, inspectionID []byte) (*ReserveAc, error)
	List(ctx context.Context, filter string, sort string, limit, offset int) ([]ReserveAc, int64, error)
	AircraftExists(ctx context.Context, helicopterID []byte) (bool, error)
	FlightInspectionExists(ctx context.Context, inspectionID []byte) (bool, error)
	ExistsActiveByInspectionID(ctx context.Context, inspectionID []byte, excludeID []byte) (bool, error)
	GetLastDailyInspectionByHelicopterID(ctx context.Context, helicopterID []byte) (*shareddto.LastDailyInspection, error)
}
