<?php


namespace App\Repositories;


use App\Box;
use App\Notifications\NewQuestionNotification;
use App\BoxOrder;
use App\Payment;
use App\PaymentType;
use App\Role;
use App\UserSubscription;
use App\Pricing;
use App\User;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;

class UtilsRepository implements RepositoryInterface {

    /**
     * Pre: --
     * Post: Retorna un json amb tota la informació.
     */
    public static function all()
    {
        // TODO: Implement all() method.
    }

    /**
     * Pre: La data ha d'estar disponible per fer un createAll()
     * Post: Es crea un nou registre. Es retorna la informació creada amb el nou id.
     */
    public static function create(array $data)
    {
        // TODO: Implement create() method.
    }

    /**
     * Pre: $id existeix a la taula sobre la qual s'estigui operant.
     * Post: s'actualitza la línia $id amb $data. Retorna l'objecte actualitzat. Si no el troba, no retorna res.
     */
    public static function update(array $data, $id)
    {
        // TODO: Implement update() method.
    }

    /**
     * Pre: $id existeix a la taula sobre la qual s'estigui operant.
     * Post: s'elimina o s'invalida el registre corresponent a id==$id. No retorna res.
     */
    public static function delete($id)
    {
        // TODO: Implement delete() method.
    }

    /**
     * Pre: $id existeix. Sinó no retornarà res.
     * Post: Retorna el json amb id==$id.
     */
    public static function find($id)
    {
        // TODO: Implement find() method.
    }

    public static function question($user_id,$params) {
        $u = DB::table('users')->where('email','=','admin@bisual.net')->first();
        $user = User::find($u->id);
        $company = $params['company_id'] ? CompanyRepository::find($params['company_id']) : null;
        $box = $params['box_id'] ? BoxRepository::find($params['box_id']) : null;
        $name = $params['user_id'];
        $mobile = $params['mobile'];
        $email = $params['email'];
        $subject = $params['subject'];
        $msg = $params['msg'];

        $user->notify((new NewQuestionNotification($company, $box, $name, $mobile, $email, $subject, $msg))->delay(Carbon::now()->addSeconds(5)));

        return array( "status" => "OK");
    }
}
