Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
50.00% covered (danger)
50.00%
1 / 2
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
ApiLogDetail
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5/** @license For full copyright and license information, please see the LICENSE.md file. */
6
7namespace App\Core\Api\Domain\Model;
8
9defined('AMMONLY_APP') || exit('Direct script access is forbidden.');
10
11/**
12 * API Request Log Detail Value Object.
13 *
14 * Stores sanitized request/response headers, bodies, and exception traces for deep diagnostics (OWASP / NIST AU-3).
15 *
16 * @package App\Core\Api\Domain\Model
17 */
18final readonly class ApiLogDetail
19{
20    /**
21     * ApiLogDetail constructor.
22     *
23     * @param string      $requestId        Correlation / trace ID.
24     * @param string|null $requestHeaders   Sanitized request headers JSON.
25     * @param string|null $requestPayload   Sanitized request body JSON.
26     * @param string|null $responseHeaders  Response headers JSON.
27     * @param string|null $responsePayload  Response body preview JSON.
28     * @param string|null $exceptionClass   Exception class name if thrown.
29     * @param string|null $exceptionMessage Exception message text.
30     * @param string|null $exceptionTrace   Formatted stack trace text.
31     */
32    public function __construct(
33        public string  $requestId,
34        public ?string $requestHeaders = null,
35        public ?string $requestPayload = null,
36        public ?string $responseHeaders = null,
37        public ?string $responsePayload = null,
38        public ?string $exceptionClass = null,
39        public ?string $exceptionMessage = null,
40        public ?string $exceptionTrace = null,
41    ) {
42    }
43}