Skip to content
This repository was archived by the owner on Aug 15, 2025. It is now read-only.

Commit 9557d8c

Browse files
committed
create chat models
1 parent 4329852 commit 9557d8c

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed

polyproto/chat/main.tsp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import "../main.tsp";
2+
import "./models";
23

34
using Http;
45
using Versioning;

polyproto/chat/models/main.tsp

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
namespace polyproto.chat.Models {
2+
model Guild {
3+
id: string;
4+
display_name: string;
5+
description?: string;
6+
icon?: url;
7+
owner_id: string;
8+
created_at: offsetDateTime;
9+
}
10+
11+
model Channel {
12+
id: string;
13+
data: ChannelData | Encrypted<ChannelData>;
14+
}
15+
16+
model ChannelData {
17+
parent_id: string;
18+
type: uint8;
19+
position: uint32;
20+
name: string;
21+
description: string;
22+
permissions: string;
23+
}
24+
25+
enum ChannelType {
26+
Regular: 1,
27+
}
28+
29+
model Encrypted<T> {
30+
data: T;
31+
mls_epoch_number: uint64;
32+
mls_group_id: string;
33+
_padding?: string;
34+
}
35+
36+
model Message {
37+
version: uint64;
38+
uid: string;
39+
author: string;
40+
content: string;
41+
timestamp: uint64;
42+
attachments?: url[];
43+
embeds?: Embed[];
44+
reactions?: Reaction[];
45+
signature: string;
46+
}
47+
48+
model Reaction {
49+
emoji: string;
50+
fid: string;
51+
}
52+
53+
model Embed {
54+
title: string;
55+
subtitle?: string;
56+
color?: string;
57+
content: string;
58+
attachments?: url[];
59+
}
60+
61+
model Actor {
62+
fid: string;
63+
display_name?: string;
64+
pronouns?: string;
65+
about?: string;
66+
avatar?: url;
67+
availability: Availability;
68+
status?: string;
69+
timezone?: string;
70+
}
71+
72+
enum Availability {
73+
InvisibleOffline: 0,
74+
Online: 1,
75+
Idle: 2,
76+
DoNotDisturb: 3,
77+
}
78+
}

0 commit comments

Comments
 (0)