<?php

/**
 * Class AddAnalyticsUnknownUseragentsProcedure
 * Creates analytics_unknown_useragents procedure in database
 *
 * @copyright  2020 Podlibre
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
 * @link       https://castopod.org/
 */

namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;

class AddAnalyticsUnknownUseragentsProcedure extends Migration
{
    public function up()
    {
        // Creates Procedure for data insertion
        // Example: CALL analytics_unknown_useragents('Podcasts/1430.46 CFNetwork/1125.2 Darwin/19.4.0');
        $procedureName = $this->db->prefixTable('analytics_unknown_useragents');
        $createQuery = <<<EOD
        CREATE PROCEDURE `$procedureName` (IN `p_useragent` VARCHAR(191) CHARSET utf8mb4)  MODIFIES SQL DATA
        DETERMINISTIC
        SQL SECURITY INVOKER
        COMMENT 'Add an unknown useragent to table $procedureName.'
        INSERT INTO `$procedureName`(`useragent`)
        VALUES (p_useragent)
        ON DUPLICATE KEY UPDATE `hits`=`hits`+1
        EOD;
        $this->db->query($createQuery);
    }

    public function down()
    {
        $procedureName = $this->db->prefixTable('analytics_unknown_useragents');
        $this->db->query("DROP PROCEDURE IF EXISTS `$procedureName`");
    }
}