<?php
/**
 * Diese Datei enthält alle SQL Statements für die Tabelle "benutzer"
 */


namespace App\Models;

use Exception;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;



class Benutzer extends Model
{
    use HasFactory;

    function anmelden(string $email, string $passwort): int
    {

        $sql = "SELECT * FROM benutzer WHERE (`email` = '$email')";
        $result = DB::select($sql);
        $row = $result[0];

        if ($row->passwort == NULL) {
            $row = 0;
        } elseif ($row->passwort == $passwort) {
            session(["start"=>1]);

            DB::update("UPDATE benutzer SET letzteanmeldung = current_time, anzahlfehler = 0 WHERE email = '$email'");


            // $sql = "UPDATE benutzer SET anzahlanmeldungen = anzahlanmeldungen + 1 WHERE id = " . $row['id'];
            DB::statement("CALL incrementAnzahlAnmeldungen(" . ($row->id) . ")");

            session(["uid" => session()->getId()]);
            session(["login" => 1]);
            session(["name" => $row->name]);
            session(["email" => $row->email]);
            session(["benutzer_id"=> $row->id]);
            return 1;
        } else {


            DB::update("UPDATE benutzer SET anzahlfehler = anzahlfehler+1,	letzterfehler = current_time WHERE email = '$email'");


        }
        return 0;
    }

    public function isAdmin(int $id){
        $sql = "SELECT benutzer.admin FROM benutzer WHERE benutzer.id =".$id;
        $result = DB::select($sql);

        return $result[0]->admin;
    }

}
