<?php namespace App\Models\Usage; use Carbon\Carbon; use App\Models\Service\Broadband as ServiceBroadband; use Illuminate\Support\Facades\Log; class Broadband extends Type { protected $table = 'usage_broadband'; private $traffic_end = 14; /* RELATIONS */ /* @todo rename to service() and put in parent */ /* @deprecated */ public function broadband() { Log::alert('deprecated function '.__METHOD__); return $this->belongsTo(ServiceBroadband::class); } /* ATTRIBUTES */ public function getTotalAttribute() { return $this->up_peak+$this->down_peak+$this->up_offpeak+$this->down_offpeak; } public function getTrafficMonthEndAttribute() { if ($this->date->day > $this->traffic_end) { // If we are the last day of the month, we'll temporarily take 3 days since Jan 31 and addMonth() results in March. if ($this->date->addMonth()->day != $this->date->day) $this->date=$this->date->subDays(3); return Carbon::createFromFormat('Y-m-d',$this->date->addMonth()->format('Y-m-').$this->traffic_end); } else { return Carbon::createFromFormat('Y-m-d',$this->date->format('Y-m-').$this->traffic_end); } } public function getTrafficMonthStartAttribute() { if ($this->date->day > $this->traffic_end) { return Carbon::createFromFormat('Y-m-d',$this->date->format('Y-m-').($this->traffic_end+1)); } else { return Carbon::createFromFormat('Y-m-d',$this->date->subMonth()->format('Y-m-').($this->traffic_end+1)); } } }