<?php
namespace App\Imali;
use App\User;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Activitylog\LogOptions;
use DateTimeInterface;
class BusinessAccount extends Model
{
use HasFactory;
protected $fillable = [
'captive_balance',
'firebase_token',
'account_number',
'balance',
'points',
'user_id',
'imali_account_config',
'reference',
'name',
'company_name', // nome da empresa
'company_logo', // logotipo da empresa
'company_address', // endereco da empresa
'company_nuit', // nuit da empresa
'company_phone', // numero de telefone da empresa
'company_email', // email da empresa
'activity_branch', //ramo de actividade
'country_id', // id do pais
'province_id', // id da provincia
'district_id', // id do distrito
'municipal_license', // foto da lincensa municipal
'alvara', // foto do alvara
'commercial_registration_certificate', // foto do certificado de registo comercial
'nuit', // foto do nuit
'owner_name', // nome do proprietario da empresa
'owner_phone', // contacto do proprietario da empresa
'owner_email' // email do proprietario da empresa
];
protected static $logAttributes = [
'account_number',
'balance',
'points',
'user_id',
'imali_account_config',
'reference',
'firebase_token',
'name'
];
protected static $logAttribute = [
'account_number',
'balance',
'points',
'user_id',
'imali_account_config',
'reference',
'firebase_token',
'name'
];
protected static $logName = 'business_accounts';
protected $table = 'business_accounts';
public function getDescriptionForEvent(string $eventName): string
{
return "This model has been {$eventName}";
}
function user()
{
return $this->belongsTo(User::class);
}
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('d-m-Y H:i:s');
}
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()->logOnly(['*']);
}
// Editado 14/nov/2024
function recharges()
{
return $this->hasMany(RechargeImaliAccount::class, 'imali_account_id');
}
// todo 15-Setembro-2024
static function getBusinessAccountByID($id)
{
return BusinessAccount::find($id);
}
}