<?php

namespace App\Models;

class CurrencyModel extends BaseCompanyModel
{
    protected $table = 'currencies';
    protected $primaryKey = 'id';
    protected $useTimestamps = true;
    protected $allowedFields = ['company_id', 'code', 'name', 'symbol', 'is_default', 'is_active'];

    /** قائمة العملات النشطة لشركة معينة - تُستخدم في كل القوائم المنسدلة بالنظام */
    public function activeList(?int $companyId): array
    {
        if (! $companyId) {
            return [['code' => 'USD', 'name' => 'دولار أمريكي']];
        }

        $list = $this->forCompany($companyId)->where('is_active', 1)->orderBy('is_default', 'DESC')->orderBy('code', 'ASC')->findAll();

        // احتياط: لو الشركة لسه ما ضافتش أي عملة، رجّع دولار كافتراضي عشان النظام يفضل شغال
        return $list ?: [['code' => 'USD', 'name' => 'دولار أمريكي']];
    }

    /** كود العملة الافتراضية للشركة (تُستخدم كقيمة مبدئية بالفورمات) */
    public function defaultCode(?int $companyId): string
    {
        $list = $this->activeList($companyId);
        foreach ($list as $c) {
            if (! empty($c['is_default'])) return $c['code'];
        }
        return $list[0]['code'] ?? 'USD';
    }
}
