using System.Text.Json.Serialization; namespace StellaOps.Signals.Models; /// /// Represents a discovered entrypoint into the call graph. /// public sealed class CallgraphEntrypoint { /// /// Reference to the node that is an entrypoint. /// [JsonPropertyName("nodeId")] public string NodeId { get; set; } = string.Empty; /// /// Type of entrypoint. /// [JsonPropertyName("kind")] public EntrypointKind Kind { get; set; } = EntrypointKind.Unknown; /// /// HTTP route pattern (for http/grpc kinds). /// Example: "/api/orders/{id}" /// [JsonPropertyName("route")] public string? Route { get; set; } /// /// HTTP method (GET, POST, etc.) if applicable. /// [JsonPropertyName("httpMethod")] public string? HttpMethod { get; set; } /// /// Framework that exposes this entrypoint. /// [JsonPropertyName("framework")] public EntrypointFramework Framework { get; set; } = EntrypointFramework.Unknown; /// /// Discovery source (attribute, convention, config). /// [JsonPropertyName("source")] public string? Source { get; set; } /// /// Execution phase when this entrypoint is invoked. /// [JsonPropertyName("phase")] public EntrypointPhase Phase { get; set; } = EntrypointPhase.Runtime; /// /// Deterministic ordering for stable serialization. /// [JsonPropertyName("order")] public int Order { get; set; } }