| 1234567891011121314151617181920212223242526272829303132333435363738 | 
							- <?php
 - 
 - namespace App\DTO;
 - 
 - use App\Contracts\BalanceFormattable;
 - 
 - readonly class AgingBucketDTO implements BalanceFormattable
 - {
 -     /**
 -      * @param  array<string, string>  $periods
 -      */
 -     public function __construct(
 -         public string $current,
 -         public array $periods,
 -         public string $overPeriods,
 -         public string $total,
 -     ) {}
 - 
 -     public static function fromArray(array $balances): static
 -     {
 -         $periods = [];
 - 
 -         // Extract all period balances
 -         foreach ($balances as $key => $value) {
 -             if (str_starts_with($key, 'period_')) {
 -                 $periods[$key] = $value;
 -                 unset($balances[$key]);
 -             }
 -         }
 - 
 -         return new static(
 -             current: $balances['current'],
 -             periods: $periods,
 -             overPeriods: $balances['over_periods'],
 -             total: $balances['total'],
 -         );
 -     }
 - }
 
 
  |