package jobqueue

import (
	"fmt"
)

var (
	ErrMissingDependency            = fmt.Errorf("missing dependency")
	ErrCycleDetected                = fmt.Errorf("cycle detected")
	ErrQueueEmpty                   = fmt.Errorf("queue is empty")
	ErrJobAlreadyExists             = fmt.Errorf("job already exists")
	ErrWorkerNotRunning             = fmt.Errorf("worker is not running")
	ErrMaxJobsReached               = fmt.Errorf("maximum number of jobs reached")
	ErrWorkerAlreadyRunning         = fmt.Errorf("worker is already running")
	ErrWorkerAlreadyAdded           = fmt.Errorf("worker is already added")
	ErrWorkerNotAdded               = fmt.Errorf("worker is not added")
	ErrNoWorkers                    = fmt.Errorf("no workers")
	ErrWorkerAlreadyStopped         = fmt.Errorf("worker is already stopped")
	ErrManagerAlreadyStopped        = fmt.Errorf("manager is already stopped")
	ErrManagerAlreadyRunning        = fmt.Errorf("manager is already running")
	ErrManagerNotRunning            = fmt.Errorf("manager is not running")
	ErrJobNotScheduled              = fmt.Errorf("job is not scheduled")
	ErrCronNotInitialized           = fmt.Errorf("cron is not initialized")
	ErrCPUPercentage                = fmt.Errorf("cpu percentage must be between 0 and 100")
	ErrIntervalIsZero               = fmt.Errorf("interval must be greater than 0")
	ErrUnknownRunnableType          = fmt.Errorf("unknown runnable type")
	ErrUnknownSchedulerType         = fmt.Errorf("unknown scheduler type")
	ErrUnsupportedDatabaseType      = fmt.Errorf("unsupported database type")
	ErrUnsupportedFileOption        = fmt.Errorf("unsupported file option")
	ErrUnsupportedCredentialType    = fmt.Errorf("unsupported credential type")
	ErrUnsupportedTransferDirection = fmt.Errorf("unsupported transfer direction")
	ErrInvalidData                  = fmt.Errorf("invalid data")
	ErrUnknownFormat                = fmt.Errorf("unknown format")
	ErrFailedToCreateTempFile       = fmt.Errorf("failed to create temp file")
	ErrFailedToWriteTempFile        = fmt.Errorf("failed to write temp file")
	ErrJobAlreadyScheduled          = fmt.Errorf("job already scheduled")
	ErrNoDatabaseConnection         = fmt.Errorf("no database connection")
	ErrDBSaverNotRunning            = fmt.Errorf("dbsaver is not running")
	ErrDBSaverNotInitialized        = fmt.Errorf("dbsaver is not initialized")
	ErrSchedulerNotSet              = fmt.Errorf("scheduler is not set")
	ErrJobNotActive                 = fmt.Errorf("job is not active")
	ErrJobAlreadyActive             = fmt.Errorf("job is already active")
	ErrChannelAlreadyClosed         = fmt.Errorf("channel is already closed")
	ErrUnknownScheduleType          = fmt.Errorf("unknown schedule type")
	ErrNoManager                    = fmt.Errorf("no manager")
	ErrCannotLoadStatsFromDatabase  = fmt.Errorf("errors while loading stats from database")
)