<?php

declare(strict_types=1);

namespace App\Shared\Domain\Contract;

/**
 * HR leave profile of an employee, consumed by the Absence module without
 * coupling it to the concrete Core User entity.
 *
 * Exposes only the RH getters actually used by AbsenceBalanceService and
 * AccrueLeaveCommand. This is a service-level typing contract, not a Doctrine
 * relation (no resolve_target_entities entry).
 */
interface LeaveProfileInterface
{
    public function getWorkTimeRatio(): float;

    public function getAnnualLeaveDays(): float;

    public function getReferencePeriodStart(): string;

    public function getInitialLeaveBalance(): float;
}
