import { LogCategory } from '/@/renderer/utils/logger';

export const logMsg = {
    [LogCategory.ANALYTICS]: {
        appTracked: 'Analytics sent',
        pageViewTracked: 'Page view tracked',
    },
    [LogCategory.API]: {},
    [LogCategory.EXTERNAL]: {
        discordRpcActivityCleared: 'Activity was cleared for Discord RPC',
        discordRpcInitialized: 'Discord RPC was initialized',
        discordRpcQuit: 'Discord RPC was quit',
        discordRpcSetActivity: 'Activity was set for Discord RPC',
        discordRpcTrackChanged: 'Track was changed for Discord RPC',
        discordRpcUpdateSkipped: 'Activity was not updated for Discord RPC',
    },
    [LogCategory.OTHER]: {
        error: 'An error occurred',
        warning: 'A warning occurred',
    },
    [LogCategory.PLAYER]: {
        addToQueueByData: 'Added to queue by data',
        addToQueueByFetch: 'Added to queue by fetch',
        addToQueueByListQuery: 'Added to queue by list query',
        addToQueueByType: 'Added to queue by type',
        autoPlayFailed: 'Auto play failed',
        autoPlayTriggered: 'Auto play triggered',
        cancelledFetch: 'Cancelled fetch',
        clearQueue: 'Cleared queue',
        clearSelected: 'Cleared selected',
        decreaseVolume: 'Decreased volume',
        increaseVolume: 'Increased volume',
        mediaNext: 'Media next',
        mediaPause: 'Media pause',
        mediaPlay: 'Media play',
        mediaPlayByIndex: 'Media play by index',
        mediaPrevious: 'Media previous',
        mediaSeekToTimestamp: 'Media seek to timestamp',
        mediaSkipBackward: 'Media skip backward',
        mediaSkipForward: 'Media skip forward',
        mediaStop: 'Media stop',
        mediaToggleMute: 'Media toggle mute',
        mediaTogglePlayPause: 'Media toggle play pause',
        moveSelectedTo: 'Moved selected to',
        moveSelectedToBottom: 'Moved selected to bottom',
        moveSelectedToNext: 'Moved selected to next',
        moveSelectedToTop: 'Moved selected to top',
        playbackError: 'An error occurred during playback',
        playerFiltersApplied: 'Player filters applied',
        setFavorite: 'Set favorite',
        setQueue: 'Set queue',
        setRating: 'Set rating',
        setRepeat: 'Set repeat',
        setShuffle: 'Set shuffle',
        setSpeed: 'Set speed',
        setVolume: 'Set volume',
        shuffle: 'Shuffle',
        shuffleAll: 'Shuffle all',
        shuffleSelected: 'Shuffle selected',
        toggleRepeat: 'Toggle repeat',
        toggleShuffle: 'Toggle shuffle',
    },
    [LogCategory.REMOTE]: {
        cannotSendEvent: 'Cannot send event - socket not available',
        closingExistingSocket: 'Closing existing socket',
        creatingWebSocket: 'Creating new WebSocket',
        credentialsFetched: 'Credentials fetched',
        failedToEnableRemote: 'Failed to enable remote',
        failedToGetCredentials: 'Failed to get credentials',
        favoriteEventReceived: 'Favorite event received',
        fetchingCredentials: 'Fetching credentials',
        initializingRemoteSettings: 'Initializing remote settings',
        playbackEventReceived: 'Playback event received',
        positionEventReceived: 'Position event received',
        proxyEventReceived: 'Proxy event received (image update)',
        ratingEventReceived: 'Rating event received',
        reconnectInitiated: 'Reconnect initiated',
        reloadingPage: 'Reloading page due to close code',
        repeatEventReceived: 'Repeat event received',
        requestFavoriteReceived: 'Request favorite received',
        requestPositionReceived: 'Request position received',
        requestRatingReceived: 'Request rating received',
        requestSeekReceived: 'Request seek received',
        requestVolumeReceived: 'Request volume received',
        sendingAuthentication: 'Sending authentication',
        sendingEventToServer: 'Sending event to server',
        sendingInitialSong: 'Sending initial song',
        serverIsDown: 'Server is down',
        shuffleEventReceived: 'Shuffle event received',
        socketClosedUnexpectedly: 'Socket closed unexpectedly',
        songEventReceived: 'Song event received',
        stateEventReceived: 'State event received (full state update)',
        updateFavoriteSent: 'Update favorite sent',
        updatePlaybackSent: 'Update playback sent',
        updatePositionSent: 'Update position sent',
        updateRatingSent: 'Update rating sent',
        updateRepeatSent: 'Update repeat sent',
        updateShuffleSent: 'Update shuffle sent',
        updateSongSent: 'Update song sent',
        updateVolumeSent: 'Update volume sent',
        volumeEventReceived: 'Volume event received',
        webSocketClosed: 'WebSocket closed',
        webSocketErrorEvent: 'WebSocket error event',
        webSocketMessageReceived: 'WebSocket message received',
        webSocketOpened: 'WebSocket opened',
    },
    [LogCategory.SCROBBLE]: {
        scrobbledPause: 'Scrobbled a pause event',
        scrobbledStart: 'Scrobbled a start event',
        scrobbledSubmission: 'Scrobbled a submission event',
        scrobbledTimeupdate: 'Scrobbled a timeupdate event',
        scrobbledUnpause: 'Scrobbled an unpause event',
    },
    [LogCategory.SYSTEM]: {
        authenticatingServer: 'Authenticating server',
        serverAuthenticationAborted: 'Server authentication aborted',
        serverAuthenticationError: 'Server authentication error',
        serverAuthenticationFailed: 'Server authentication failed',
        serverAuthenticationInvalid: 'Server authentication invalid',
        serverAuthenticationSuccess: 'Server authentication successful',
        settingsSynchronized: 'Differences found between renderer and main process settings',
    },
};
