<?php
// ============================================================
// ILabCertificate Interface
// Every lab-specific certificate handler must implement this.
// ============================================================
interface ILabCertificate {

    /**
     * Generate the HTML content for the certificate (used for PDF and preview).
     * @param array $request  - request row + joined company/equipment/lab data
     * @param array $formData - saved lab form data row
     * @param array $officer  - user row (includes 'signature' filename)
     * @param string $certNum - e.g. GSA/MRQL/2025/0001
     * @param string $issueDate - Y-m-d
     * @return string HTML
     */
    public function generateHTML(
        array $request,
        array $formData,
        array $officer,
        string $certNum,
        string $issueDate
    ): string;

    /**
     * Generate DCC-compatible XML.
     */
    public function generateXML(
        array $request,
        array $formData,
        array $officer,
        string $certNum,
        string $issueDate
    ): string;

    /**
     * Return signature <img> tag HTML, or empty string if none.
     */
    public function renderSignature(array $officer): string;
}
