/**
 * Fetches user action logs of link_publishers type that are not yet processed in given environment
 * @param eZDB $db
 * @param string $environment
 * @return array
 */
function fetchNotProcessedLinkPublishersUserActionLogs( eZDB $db, $environment )
{
    $query = <<<'EOT'
    SELECT id, datetime, user_action_log.change, user_id, action, done
    FROM user_action_log
    WHERE action = '%s'
    AND done IN (%s)
EOT;

    $environmentsToProcess = UserActionLog::getEnvironmentCodesToProcess( $environment );

    $query = sprintf( $query, UserActionLog::ACTION_LINK_PUBLISHER, implode( $environmentsToProcess, ',' ) );
    $result = $db->arrayQuery( $query );
    return $result;
}
    public function setDoneByEnvironmentCode( $env )
    {
        $envCode = UserActionLog::getEnvironmentProcessedCode( $env );
        if ( $envCode == $this->attribute('done') )
        {
            return;
        }

        switch ( $this->attribute('done') )
        {
            case self::STATUS_PROCESSED_ERROR:
            case self::STATUS_PROCESSED_NOT:
                $this->setAttribute('done', $envCode);
                break;
            case self::STATUS_PROCESSED_PROD:
            case self::STATUS_PROCESSED_STAGING:
                $this->setAttribute('done', self::STATUS_PROCESSED_STAGING_AND_PROD);
                break;
        }
    }