<?php

namespace App\MongoDB;

use Illuminate\Http\Request;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Auth\Authenticatable as AuthenticableTrait;

class Mongo extends Eloquent implements Authenticatable {
    use AuthenticableTrait;

    protected $connection = 'mongodb';
    protected $collection = 'requests';
    protected $collectionStage = 'requests_stage';
    protected $request;

    protected $fillable = [

    ];

    protected $tables = [
        'requests' => [
            'fillable' => ['request','response','duration','url','method','ip_address','code','user_id']
        ]
    ];

    public function __construct(Request $request){
        $this->fillable = $this->tables[$request->get('collection')]['fillable'];
        $this->collection = $request->has('collection') ? $request->get('collection') : (env('APP_CONNECTION') == 1 ? $this->collection : $this->collectionStage);
        $this->request = $request;
    }

    public function create(){
        $this->fill($this->request->toArray());
        $this->save();
    }

    public function addCollection($collection){
        $this->createCollection($collection);
    }
}
