<?php
namespace App\Imali;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;
use DateTimeInterface;
class MerchantAccount extends Authenticatable
{
use HasFactory ,HasApiTokens, Notifiable;
use LogsActivity;
protected $guard = 'merchant';
protected static $logAttributes = [
'name',
'address',
'institution',
'bi',
'nuit',
'status',
'phone_number',
'nib',
'email',
'password',
'image',
'account_number',
'balance',
'imali_account_id',
'user_id',
'session_status',
'public_merchant_id',
'kyc_config_id'
];
protected $fillable = [
'name',
'address',
'institution',
'bi',
'nuit',
'status',
'phone_number',
'nib',
'email',
'password',
'image',
'account_number',
'balance',
'session_status',
'imali_account_id',
'user_id',
'public_merchant_id',
'kyc_config_id'
];
/**
* 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',
];
protected static $logName = 'merchantAccount';
public function getDescriptionForEvent(string $eventName): string
{
return "This model has been {$eventName}";
}
public function setNameAttribute($value)
{
$this->attributes['name'] = ucwords(strtolower($value));
}
public function setEmailAttribute($value)
{
$this->attributes['email'] = strtolower($value);
}
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('d-m-Y H:i:s');
}
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()->logOnly(['*']);
}
}