Forge
csharpdeeb25a2
1using System.Text.Json;
2using System.Text.Json.Serialization;
3
4namespace CascadeIDE.Features.Intercom.Transport;
5
6public sealed record IntercomSenderWireDto(
7 [property: JsonPropertyName("member_id")] string MemberId,
8 [property: JsonPropertyName("display_name")] string DisplayName,
9 [property: JsonPropertyName("sender_role")] string SenderRole,
10 [property: JsonPropertyName("client_kind")] string ClientKind);
11
12public sealed record IntercomTransportEventEnvelopeDto(
13 [property: JsonPropertyName("schema_version")] int SchemaVersion,
14 [property: JsonPropertyName("seq")] long Seq,
15 [property: JsonPropertyName("team_id")] string TeamId,
16 [property: JsonPropertyName("topic_id")] string TopicId,
17 [property: JsonPropertyName("client_event_id")] string ClientEventId,
18 [property: JsonPropertyName("occurred_at_utc")] string OccurredAtUtc,
19 [property: JsonPropertyName("event_kind")] string EventKind,
20 [property: JsonPropertyName("sender")] IntercomSenderWireDto Sender,
21 [property: JsonPropertyName("payload")] JsonElement Payload);
22
23public sealed record IntercomAppendEventRequestDto(
24 [property: JsonPropertyName("schema_version")] int SchemaVersion,
25 [property: JsonPropertyName("client_event_id")] string ClientEventId,
26 [property: JsonPropertyName("occurred_at_utc")] string? OccurredAtUtc,
27 [property: JsonPropertyName("event_kind")] string EventKind,
28 [property: JsonPropertyName("sender")] IntercomSenderWireDto? Sender,
29 [property: JsonPropertyName("payload")] JsonElement Payload);
30
31public sealed record IntercomTopicDto(
32 [property: JsonPropertyName("topic_id")] string TopicId,
33 [property: JsonPropertyName("team_id")] string TeamId,
34 [property: JsonPropertyName("title")] string Title,
35 [property: JsonPropertyName("spine_key")] string? SpineKey);
36
37public sealed record IntercomTokenResponseDto(
38 [property: JsonPropertyName("access_token")] string AccessToken,
39 [property: JsonPropertyName("refresh_token")] string RefreshToken,
40 [property: JsonPropertyName("expires_in")] int ExpiresIn,
41 [property: JsonPropertyName("token_type")] string TokenType);
42
43public sealed record OAuthTokenRequest(
44 [property: JsonPropertyName("grant_type")] string GrantType,
45 [property: JsonPropertyName("refresh_token")] string? RefreshToken,
46 [property: JsonPropertyName("code")] string? Code,
47 [property: JsonPropertyName("state")] string? State,
48 [property: JsonPropertyName("code_verifier")] string? CodeVerifier,
49 [property: JsonPropertyName("redirect_uri")] string? RedirectUri);
50
51public sealed record IntercomMeTeamDto(
52 [property: JsonPropertyName("team_id")] string TeamId,
53 [property: JsonPropertyName("team_role")] string TeamRole,
54 [property: JsonPropertyName("display_name")] string DisplayName,
55 [property: JsonPropertyName("team_display_name")] string? TeamDisplayName = null);
56
57public sealed record IntercomMeResponseDto(
58 [property: JsonPropertyName("member_id")] string MemberId,
59 [property: JsonPropertyName("display_name")] string DisplayName,
60 [property: JsonPropertyName("member_kind")] string MemberKind,
61 [property: JsonPropertyName("teams")] IReadOnlyList<IntercomMeTeamDto> Teams);
62
63public sealed record IntercomAuthProviderDto(
64 [property: JsonPropertyName("provider_id")] string ProviderId,
65 [property: JsonPropertyName("display_name")] string DisplayName,
66 [property: JsonPropertyName("enabled")] bool Enabled);
67
68public sealed record IntercomWorkspaceContextTeamDto(
69 [property: JsonPropertyName("team_id")] string TeamId,
70 [property: JsonPropertyName("display_name")] string DisplayName,
71 [property: JsonPropertyName("team_role")] string TeamRole,
72 [property: JsonPropertyName("project_id")] string ProjectId);
73
74public sealed record IntercomWorkspaceContextResponseDto(
75 [property: JsonPropertyName("normalized_repo_urls")] IReadOnlyList<string> NormalizedRepoUrls,
76 [property: JsonPropertyName("projects")] IReadOnlyList<object> Projects,
77 [property: JsonPropertyName("teams")] IReadOnlyList<IntercomWorkspaceContextTeamDto> Teams,
78 [property: JsonPropertyName("suggested_team_id")] string? SuggestedTeamId);
79
80public sealed record IntercomEnsureTopicRequestDto(
81 [property: JsonPropertyName("spine_key")] string SpineKey,
82 [property: JsonPropertyName("title")] string Title);
83
84public static class IntercomTransportJson
85{
86 public static readonly JsonSerializerOptions Web = new(JsonSerializerDefaults.Web);
87}
88
View only · write via MCP/CIDE