usecases

package
v0.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2025 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CarUseCase

type CarUseCase interface {
	Get(context.Context) (entities.CarList, error)
	GetByID(context.Context, uuid.UUID) (*entities.Car, error)
}

type Cars

type Cars struct {
	// contains filtered or unexported fields
}

func NewCars

func NewCars(repo repositories.Car) *Cars

func (*Cars) Get

func (o *Cars) Get(ctx context.Context) (entities.CarList, error)

func (*Cars) GetByID

func (o *Cars) GetByID(ctx context.Context, id uuid.UUID) (*entities.Car, error)

type Setup

type Setup struct {
	// contains filtered or unexported fields
}

func NewSetup

func NewSetup(
	dao *data.AccessObject,
	setupSvc *services.Setup,
	trackSvc *services.Track,
	setupRepo repositories.Setup,
	setupStore repositories.SetupStorage,
	userRepo repositories.User,
	eventPublisher services.EventPublisher,
) *Setup

func (*Setup) Create

func (s *Setup) Create(ctx context.Context, setup *entities.Setup) error

func (*Setup) GetByID

func (s *Setup) GetByID(ctx context.Context, userID, id uuid.UUID) (*entities.Setup, error)

func (*Setup) GetPublicList

func (s *Setup) GetPublicList(
	ctx context.Context,
	userID uuid.UUID,
	qf infraHttp.QueryFilter,
	pg *infraHttp.Pagination,
) (entities.SetupList, error)

func (*Setup) GetSetupFile

func (s *Setup) GetSetupFile(ctx context.Context, setupID uuid.UUID) (*entities.SetupFile, error)

func (*Setup) ListUserAIGeneratedSetups

func (s *Setup) ListUserAIGeneratedSetups(
	ctx context.Context,
	setupID, userID uuid.UUID,
	pg *infraHttp.Pagination,
) (entities.SetupList, error)

func (*Setup) ListUserSetups

func (s *Setup) ListUserSetups(
	ctx context.Context,
	userID uuid.UUID,
	pg *infraHttp.Pagination,
) (entities.SetupList, error)

func (*Setup) RecordVote

func (s *Setup) RecordVote(ctx context.Context, setupID, userID uuid.UUID, upvote bool) (int64, error)

func (*Setup) TrackGroupedSetupList

func (s *Setup) TrackGroupedSetupList(
	ctx context.Context,
	userID uuid.UUID,
	qo *infraHttp.QueryOrderBy,
) ([]entities.SetupGroup, error)

TODO(slax0rr): This function, and possibly many others here need to be reviewed, and properly split between the application level use cases and domain level services. But for purposes of quick delivery, this is now entirely in the application level use case.

func (*Setup) Update

func (s *Setup) Update(ctx context.Context, setup *entities.Setup, user *entities.User) error

type Strategy

type Strategy struct {
	// contains filtered or unexported fields
}

func NewStrategy

func NewStrategy(
	dao *data.AccessObject,
	stratRepo repositories.Strategy,
	trackSvc *services.Track,
	raceStratUC *services.RaceStrategy,
	raceProgressUC *services.RaceProgress,
	stintUC services.StintService,
	pitstopSvc services.PitstopService,
) *Strategy

func (*Strategy) ApplyRaceProgress

func (s *Strategy) ApplyRaceProgress(
	ctx context.Context,
	strategyID, userID uuid.UUID,
	passphrase string,
	progress *entities.RaceProgress,
) (*entities.SavedStrategy, error)

func (*Strategy) CalculatePitTime

func (s *Strategy) CalculatePitTime(
	ctx context.Context,
	strategyID uuid.UUID,
	pitDetails entities.PitstopDetails,
) (*entities.CalculatedPitTime, error)

func (*Strategy) CalculateRaceStrategy

func (s *Strategy) CalculateRaceStrategy(
	ctx context.Context,
	info entities.RaceInfo,
	stratID uuid.UUID,
) (*entities.RaceStrategy, error)

func (*Strategy) EditStint

func (s *Strategy) EditStint(
	ctx context.Context,
	strategyID, userID uuid.UUID,
	passphrase string,
	stintAdj entities.StintAdjustment,
) (*entities.SavedStrategy, error)

func (*Strategy) Get

func (s *Strategy) Get(ctx context.Context, id, userID uuid.UUID) (*entities.SavedStrategy, error)

func (*Strategy) GetUserStrategies

func (s *Strategy) GetUserStrategies(
	ctx context.Context,
	userID uuid.UUID,
	pg *infraHttp.Pagination,
) (entities.StrategyList, error)

func (*Strategy) List

func (*Strategy) Save

func (s *Strategy) Save(ctx context.Context, saveStrat models.SaveStrategy) (*entities.SavedStrategy, error)

func (*Strategy) SetStrategyRaceInfo

func (s *Strategy) SetStrategyRaceInfo(
	ctx context.Context,
	strategyID, userID uuid.UUID,
	passphrase string,
	update *models.RaceInfoUpdate,
) (*entities.SavedStrategy, error)

type TrackLayoutUseCase

type TrackLayoutUseCase interface {
	Get(context.Context) (entities.TrackLayoutList, error)
	GetByID(context.Context, uuid.UUID) (*entities.TrackLayout, error)
}

type TrackLayouts

type TrackLayouts struct {
	// contains filtered or unexported fields
}

func NewTrackLayouts

func NewTrackLayouts(repo repositories.TrackLayout) *TrackLayouts

func (*TrackLayouts) Get

func (*TrackLayouts) GetByID

func (o *TrackLayouts) GetByID(ctx context.Context, id uuid.UUID) (*entities.TrackLayout, error)

type TrackUseCase

type TrackUseCase interface {
	Get(context.Context) (entities.TrackList, error)
	GetByID(context.Context, uuid.UUID) (*entities.Track, error)
}

type Tracks

type Tracks struct {
	// contains filtered or unexported fields
}

func NewTracks

func NewTracks(repo repositories.Track) *Tracks

func (*Tracks) Get

func (o *Tracks) Get(ctx context.Context) (entities.TrackList, error)

func (*Tracks) GetByID

func (o *Tracks) GetByID(ctx context.Context, id uuid.UUID) (*entities.Track, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL