• File: BusinessAccount.php
  • Full Path: /var/www/imaliapitest/app/Imali/BusinessAccount.php
  • Date Modified: 05/19/2025 4:29 PM
  • File size: 2.57 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?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);
    }
}