<?php
/**
 * LogPayload typedef — documentation and static analysis file.
 *
 * Contains a minimal abstract class with no runtime behaviour. Its sole
 * purpose is to anchor the PHPStan @phpstan-type declaration so that other
 * files can import `NimblyMailLogPayload` via @phpstan-import-type.
 *
 * Array shape:
 *
 *   id         int    Log row ID (0 if logging disabled or row insertion failed).
 *   to         string Recipients, comma-separated.
 *   subject    string Subject line (truncated to 255 chars).
 *   mailer     string The mailer slug that handled the send.
 *   sent_at    int    Unix timestamp of the send.
 *   size_bytes int    Approximate message size in bytes.
 *   source     string Calling context identifier (see Logger::detect_source()).
 *
 * @package NimblyMail\SMTP
 */

namespace NimblyMail\SMTP\Contracts;

defined( 'ABSPATH' ) || exit;

/**
 * Class LogPayload
 *
 * Anchor class for the NimblyMailLogPayload PHPStan type alias.
 *
 * This class has no runtime behaviour and must not be instantiated.
 * It exists only so static analysis tools can resolve the @phpstan-type
 * declaration anchored to this class.
 *
 * @since 1.0.0
 *
 * @phpstan-type NimblyMailLogPayload array{
 *     id: int,
 *     to: string,
 *     subject: string,
 *     mailer: string,
 *     sent_at: int,
 *     size_bytes: int,
 *     source: string,
 * }
 */
abstract class LogPayload {
    // Documentation-only anchor for the NimblyMailLogPayload type alias.
    // No methods or properties — this class must never be instantiated.
}
