<?php

declare(strict_types=1);

namespace App\Framework\Webhook\Attributes;

use Attribute;

/**
 * Attribute to configure webhook authentication
 * Supports various authentication strategies for webhook endpoints
 */
#[Attribute(Attribute::TARGET_METHOD)]
final readonly class WebhookAuth
{
    /** @param string[] $allowedIps */
    public function __construct(
        public string $strategy = 'signature',
        public ?string $header = null,
        public ?string $token = null,
        public array $allowedIps = [],
        public bool $required = true
    ) {
    }
}
