<?php

namespace App\Insurance\ValueObject;

final readonly class CoverageRule
{
    public function __construct(
        public float $coveragePercent,
        /**
         * درصدِ سهم اجباری بیمار از مبلغ تحت پوشش — از سهم بیمه کسر می‌شود.
         * فقط برای بیمهٔ تکمیلی معنا دارد؛ در بیمهٔ پایه در محاسبه دخالت نمی‌کند.
         */
        public float $franchisePercent,
        public ?int  $ceilingRials,
        public bool  $covered = true,
    ) {}

    public static function notCovered(): self
    {
        return new self(0.0, 0.0, null, false);
    }
}
