<?php
namespace App;
use App\Bank\HistoryPayment;
use App\Bank\Payment;
use App\Imali\ImaliAccount;
use App\Imali\Transfer;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
use Illuminate\Foundation\Auth\User as Authenticatable;
use DateTimeInterface;
use Spatie\Activitylog\LogOptions;
class Admin extends Authenticatable
{
use HasApiTokens, Notifiable;
protected $guard = 'admin';
protected $fillable = [
'name',
'last_name',
'bi',
'email',
'password',
'phone',
'level',
'user_id',
'photo',
'points',
'status',
'birthday',
'account_number',
'balance',
'is_Active',
'pin',
'text',
'profile',
'session_status'
];
protected static $logAttributes = [
'name',
'bi',
'email',
'password',
'phone',
'level',
'user_id',
'photo',
'points',
'status',
'birthday',
'account_number',
'balance',
'is_Active',
'pin',
'text',
'session_status'
];
protected static $logName = 'admin';
public function getDescriptionForEvent(string $eventName): string
{
return "This model has been {$eventName}";
}
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public function setNameAttribute($value)
{
$this->attributes['name'] = ucwords(strtolower($value));
}
public function setEmailAttribute($value)
{
$this->attributes['email'] = strtolower($value);
}
public function setBiAttribute($value)
{
$this->attributes['bi'] = strtoupper($value);
}
function bankAccounts()
{
return $this->hasMany(BankAccount::class);
}
function payments()
{
return $this->hasMany(Payment::class);
}
function paymentsHistory()
{
return $this->hasMany(HistoryPayment::class);
}
function imaliAccount()
{
return $this->hasOne(ImaliAccount::class);
}
function transferencias()
{
return $this->hasMany(Transfer::class);
}
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('d-m-Y H:i:s');
}
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()->logOnly(['*']);
}
}