// Package apperror defines safe application errors shared across module boundaries. package apperror import ( "errors" "fmt" ) var ( ErrInvalidInput = errors.New("invalid input") ErrUnauthenticated = errors.New("authentication required") ErrForbidden = errors.New("permission denied") ErrConflict = errors.New("already exists") ErrInsufficientCash = fmt.Errorf("insufficient available cash: %w", ErrConflict) ErrInsufficientQuantity = fmt.Errorf("insufficient sellable quantity: %w", ErrConflict) ErrCandidateUnavailable = fmt.Errorf("candidate unavailable: %w", ErrConflict) ErrPreviewExpired = fmt.Errorf("preview expired: %w", ErrConflict) ErrChronology = fmt.Errorf("fill chronology conflict: %w", ErrConflict) ErrDependentFill = fmt.Errorf("later fill depends on this record: %w", ErrConflict) ErrNotFound = errors.New("not found") ErrUnavailable = errors.New("service unavailable") )