<?php

class LogHelper
{
    public static function logInfo($message, $startTime, $endTime, $additionalData, $logType, $logger)
    {
        $logger->addItem("type_of_log", $logType);
        $logger->addItem("message", $message);
        $delta = round($endTime - $startTime, 3) * 1000;

        $time = $delta / 1000;
        $days = floor($time / (24 * 60 * 60));
        $hours = floor(($time - ($days * 24 * 60 * 60)) / (60 * 60));
        $minutes = floor(($time - ($days * 24 * 60 * 60) - ($hours * 60 * 60)) / 60);
        $seconds = ($time - ($days * 24 * 60 * 60) - ($hours * 60 * 60) - ($minutes * 60)) % 60;
        $logger->addItem('processing_time', $delta);

        $processingTime = "";
        if ($days > 0) {
            $processingTime = $days . " hari ";
        }

        if ($hours > 0) {
            $processingTime .= $hours . " jam ";
        }

        if ($minutes > 0) {
            $processingTime .= $minutes . " menit ";
        }

        if ($seconds > 0) {
            $processingTime .= $seconds . " detik";
        }

        $additionalData["processing_time"] = $processingTime;
        $logger->addArray("additional_data", $additionalData);

        $logger->info();
    }

    public static function apiLogError($api_name, $api_params, $log)
    {
        $model = new ApiErrors();
        $model->api_name = $api_name;
        $model->api_param = $api_params;

        $log = str_replace("'", "", $log);
        $log = str_replace('"', "", $log);

        $model->log = $log;
        $model->created_at = date('Y-m-d H:i:s');
        $model->save();
    }
}
