Forge
csharp4405de34
1namespace IntercomService.Data;
2
3public sealed class TeamEntity
4{
5 public required string TeamId { get; set; }
6
7 public required string DisplayName { get; set; }
8
9 public string JoinPolicy { get; set; } = JoinPolicies.FirstOwner;
10
11 public string DefaultTeamRole { get; set; } = TeamRoles.Member;
12
13 public string? JoinPolicyJson { get; set; }
14
15 public DateTimeOffset CreatedAtUtc { get; set; }
16}
17
18public sealed class MemberEntity
19{
20 public required string MemberId { get; set; }
21
22 public required string Issuer { get; set; }
23
24 public required string Subject { get; set; }
25
26 public required string DisplayName { get; set; }
27
28 public string MemberKind { get; set; } = MemberKinds.Human;
29
30 public string? AvatarGlyph { get; set; }
31
32 public DateTimeOffset CreatedAtUtc { get; set; }
33}
34
35public sealed class TeamMemberEntity
36{
37 public required string TeamId { get; set; }
38
39 public required string MemberId { get; set; }
40
41 public string TeamRole { get; set; } = TeamRoles.Member;
42
43 public string? TeamDisplayName { get; set; }
44
45 public DateTimeOffset JoinedAtUtc { get; set; }
46
47 public TeamEntity? Team { get; set; }
48
49 public MemberEntity? Member { get; set; }
50}
51
52public sealed class TopicEntity
53{
54 public required string TopicId { get; set; }
55
56 public required string TeamId { get; set; }
57
58 public required string Title { get; set; }
59
60 public string? SpineKey { get; set; }
61
62 public DateTimeOffset CreatedAtUtc { get; set; }
63
64 public TeamEntity? Team { get; set; }
65}
66
67public sealed class TransportEventEntity
68{
69 public long Id { get; set; }
70
71 public required string TeamId { get; set; }
72
73 public long Seq { get; set; }
74
75 public required string TopicId { get; set; }
76
77 public required string ClientEventId { get; set; }
78
79 public required string EventKind { get; set; }
80
81 public required string SenderMemberId { get; set; }
82
83 public required string SenderDisplayName { get; set; }
84
85 public required string SenderRole { get; set; }
86
87 public string ClientKind { get; set; } = "cide";
88
89 public required string PayloadJson { get; set; }
90
91 public DateTimeOffset OccurredAtUtc { get; set; }
92}
93
94public sealed class RefreshTokenEntity
95{
96 public required string Id { get; set; }
97
98 public required string MemberId { get; set; }
99
100 public required string TokenHash { get; set; }
101
102 public DateTimeOffset ExpiresAtUtc { get; set; }
103
104 public DateTimeOffset? RevokedAtUtc { get; set; }
105
106 public MemberEntity? Member { get; set; }
107}
108
109public sealed class OAuthStateEntity
110{
111 public required string State { get; set; }
112
113 public required string Provider { get; set; }
114
115 public required string TeamId { get; set; }
116
117 public required string RedirectUri { get; set; }
118
119 public string? CodeChallenge { get; set; }
120
121 public string? CodeChallengeMethod { get; set; }
122
123 public string? InviteToken { get; set; }
124
125 public DateTimeOffset ExpiresAtUtc { get; set; }
126}
127
128public sealed class TeamInviteEntity
129{
130 public required string InviteId { get; set; }
131
132 public required string TeamId { get; set; }
133
134 public required string TokenHash { get; set; }
135
136 public string TeamRole { get; set; } = TeamRoles.Member;
137
138 public int MaxUses { get; set; } = 1;
139
140 public int UseCount { get; set; }
141
142 public required string CreatedByMemberId { get; set; }
143
144 public DateTimeOffset ExpiresAtUtc { get; set; }
145
146 public DateTimeOffset CreatedAtUtc { get; set; }
147
148 public TeamEntity? Team { get; set; }
149}
150
151public sealed class AgentCredentialEntity
152{
153 public required string CredentialId { get; set; }
154
155 public required string MemberId { get; set; }
156
157 public required string TokenHash { get; set; }
158
159 public DateTimeOffset? ExpiresAtUtc { get; set; }
160
161 public DateTimeOffset? RevokedAtUtc { get; set; }
162
163 public DateTimeOffset CreatedAtUtc { get; set; }
164
165 public MemberEntity? Member { get; set; }
166}
167
168public sealed class ProjectEntity
169{
170 public required string ProjectId { get; set; }
171
172 public required string DisplayName { get; set; }
173
174 public DateTimeOffset CreatedAtUtc { get; set; }
175}
176
177public sealed class ProjectRepoEntity
178{
179 public required string ProjectId { get; set; }
180
181 public required string NormalizedRepoUrl { get; set; }
182
183 public DateTimeOffset LinkedAtUtc { get; set; }
184
185 public ProjectEntity? Project { get; set; }
186}
187
188public sealed class TeamProjectEntity
189{
190 public required string TeamId { get; set; }
191
192 public required string ProjectId { get; set; }
193
194 public DateTimeOffset LinkedAtUtc { get; set; }
195
196 public TeamEntity? Team { get; set; }
197
198 public ProjectEntity? Project { get; set; }
199}
200
View only · write via MCP/CIDE