"""Tracking validators — Phase 10.7."""
from __future__ import annotations

from shared.exceptions import AppError


def validate_coordinates(*, latitude: float, longitude: float) -> None:
    if not (-90 <= latitude <= 90):
        raise AppError(
            "عرض جغرافیایی نامعتبر است",
            status_code=422,
            error_code="invalid_latitude",
        )
    if not (-180 <= longitude <= 180):
        raise AppError(
            "طول جغرافیایی نامعتبر است",
            status_code=422,
            error_code="invalid_longitude",
        )


def validate_pod_refs(
    *, signature_file_ref: str | None, photo_file_ref: str | None
) -> None:
    if not signature_file_ref and not photo_file_ref:
        raise AppError(
            "حداقل یک مرجع فایل برای اثبات تحویل الزامی است",
            status_code=422,
            error_code="pod_file_ref_required",
        )
