<?php

namespace App\Http\Controllers\Locus;

// Laravel Specifics
use Illuminate\Http\Request;

// Creatia Core
use App\Models\SecurityEvent;

// Module Specifics
use App\Http\Controllers\Network\NetworkController;

class AdminGeoIpController extends NetworkController
{

    public function get_history(Request $_r, $_geo_ip_id) { 
        return $this->paged_table($_r, function() use($_geo_ip_id) {
            return SecurityEvent::select('ip', 'user_agent', 'security_events.created_at', 'users.name', 'payload')
                ->leftJoin('users', 'users.id', '=', 'user_id')
                ->where('route', '=', "api/network/locus/$_geo_ip_id/data/edit");
        }, [ 
            'ip'            => [ 'db' => 'ip', 'searchable' => true ],
            'name'          => [ 'db' => 'users.name', 'searchable' => true ],
            'user_agent'    => [ 'db' => 'user_agent', 'searchable' => true ]
        ], 'created_at', function($data) {
            $data->transform(function($row) {
                $row->payload = json_decode($row->payload, true);

                return $row;
            });

            return $data;
        });
    }

}
