chore: auto-generate protobuf files [skip ci]
This commit is contained in:
139
gen/chat/chat.ts
139
gen/chat/chat.ts
@@ -15,16 +15,25 @@ export interface MessageDto {
|
||||
id: string;
|
||||
chatId: string;
|
||||
senderId: string;
|
||||
/** TEXT, VOICE, VIDEO_NOTE, STICKER */
|
||||
/** TEXT, VOICE, VIDEO_NOTE, STICKER, IMAGE */
|
||||
type: string;
|
||||
/** Для текста - сам текст. Для медиа - URL S3! */
|
||||
content: string;
|
||||
/** JSON string */
|
||||
/** Ширина/высота картинки, длительность войса (JSON string) */
|
||||
metadata: string;
|
||||
replyToId: string;
|
||||
isEdited: boolean;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export interface ChatMemberDto {
|
||||
accountId: string;
|
||||
/** OWNER, ADMIN, MEMBER */
|
||||
role: string;
|
||||
isMuted: boolean;
|
||||
joinedAt: string;
|
||||
}
|
||||
|
||||
export interface ChatDto {
|
||||
id: string;
|
||||
/** DIRECT, GROUP, CHANNEL */
|
||||
@@ -32,18 +41,17 @@ export interface ChatDto {
|
||||
title: string;
|
||||
avatarUrl: string;
|
||||
unreadCount: number;
|
||||
/** Нужно для рендера списка чатов слева! */
|
||||
lastMessage: MessageDto | undefined;
|
||||
lastMessage:
|
||||
| MessageDto
|
||||
| undefined;
|
||||
/** Полезно для рендера иконки перечеркнутого колокольчика */
|
||||
isMuted: boolean;
|
||||
}
|
||||
|
||||
export interface CreateChatRequest {
|
||||
/** ID того кто создает */
|
||||
creatorId: string;
|
||||
/** GROUP, DIRECT, CHANNEL */
|
||||
type: string;
|
||||
/** Имя (при type=GROUP|CHANNEL) */
|
||||
title: string;
|
||||
/** Кого сразу добавить (собеседник в личке или юзеры в группе) */
|
||||
participantIds: string[];
|
||||
}
|
||||
|
||||
@@ -53,7 +61,6 @@ export interface CreateChatResponse {
|
||||
|
||||
export interface GetUserChatsRequest {
|
||||
userId: string;
|
||||
/** для пагинации (бесконечный скролл в левой панели) */
|
||||
offset: number;
|
||||
limit: number;
|
||||
}
|
||||
@@ -62,9 +69,24 @@ export interface GetUserChatsResponse {
|
||||
chats: ChatDto[];
|
||||
}
|
||||
|
||||
/** Получаем профили всех участников и ссылку-приглашение (join_hash) */
|
||||
export interface GetChatDetailsRequest {
|
||||
userId: string;
|
||||
chatId: string;
|
||||
}
|
||||
|
||||
export interface GetChatDetailsResponse {
|
||||
chat:
|
||||
| ChatDto
|
||||
| undefined;
|
||||
/** Для ссылки-приглашения (t.me/join/...) */
|
||||
joinHash: string;
|
||||
members: ChatMemberDto[];
|
||||
}
|
||||
|
||||
export interface JoinChatRequest {
|
||||
userId: string;
|
||||
/** либо join_hash */
|
||||
/** Передаем либо chat_id, либо вытаскиваем его из join_hash */
|
||||
chatId: string;
|
||||
}
|
||||
|
||||
@@ -81,11 +103,33 @@ export interface LeaveChatResponse {
|
||||
success: boolean;
|
||||
}
|
||||
|
||||
export interface RemoveMemberRequest {
|
||||
/** Кто кикает (нужно проверить права) */
|
||||
adminId: string;
|
||||
/** Кого кикают */
|
||||
targetUserId: string;
|
||||
chatId: string;
|
||||
}
|
||||
|
||||
export interface RemoveMemberResponse {
|
||||
success: boolean;
|
||||
}
|
||||
|
||||
export interface MuteChatRequest {
|
||||
userId: string;
|
||||
chatId: string;
|
||||
/** true = выключить звук, false = включить */
|
||||
isMuted: boolean;
|
||||
}
|
||||
|
||||
export interface MuteChatResponse {
|
||||
success: boolean;
|
||||
}
|
||||
|
||||
export interface GetMessagesRequest {
|
||||
userId: string;
|
||||
chatId: string;
|
||||
limit: number;
|
||||
/** курсорная пагинация, как в Telegram */
|
||||
beforeMsgId: string;
|
||||
}
|
||||
|
||||
@@ -101,10 +145,16 @@ export interface SendMessageRequest {
|
||||
replyToId: string;
|
||||
}
|
||||
|
||||
export interface EditMessageRequest {
|
||||
userId: string;
|
||||
messageId: string;
|
||||
newContent: string;
|
||||
}
|
||||
|
||||
export interface DeleteMessageRequest {
|
||||
userId: string;
|
||||
messageId: string;
|
||||
/** "Удалить для всех" */
|
||||
/** "Удалить только у себя" или "Удалить для всех" */
|
||||
forEveryone: boolean;
|
||||
}
|
||||
|
||||
@@ -115,6 +165,7 @@ export interface DeleteMessageResponse {
|
||||
export interface MarkAsReadRequest {
|
||||
userId: string;
|
||||
chatId: string;
|
||||
/** ID последнего видимого сообщения */
|
||||
messageId: string;
|
||||
}
|
||||
|
||||
@@ -125,24 +176,40 @@ export interface MarkAsReadResponse {
|
||||
export const CHAT_V1_PACKAGE_NAME = "chat.v1";
|
||||
|
||||
export interface ChatServiceClient {
|
||||
/** Управление чатами */
|
||||
/** Управление чатами (левая панель) */
|
||||
|
||||
createChat(request: CreateChatRequest, metadata?: Metadata): Observable<CreateChatResponse>;
|
||||
|
||||
getUserChats(request: GetUserChatsRequest, metadata?: Metadata): Observable<GetUserChatsResponse>;
|
||||
|
||||
/** Открытие инфы о группе/собеседнике */
|
||||
|
||||
getChatDetails(request: GetChatDetailsRequest, metadata?: Metadata): Observable<GetChatDetailsResponse>;
|
||||
|
||||
/** Управление участниками группы */
|
||||
|
||||
joinChat(request: JoinChatRequest, metadata?: Metadata): Observable<JoinChatResponse>;
|
||||
|
||||
leaveChat(request: LeaveChatRequest, metadata?: Metadata): Observable<LeaveChatResponse>;
|
||||
|
||||
/** Управление сообщениями (история) */
|
||||
/** Админ кикает пользователя */
|
||||
|
||||
removeMember(request: RemoveMemberRequest, metadata?: Metadata): Observable<RemoveMemberResponse>;
|
||||
|
||||
/** Выключить/включить пуши для чата */
|
||||
|
||||
muteChat(request: MuteChatRequest, metadata?: Metadata): Observable<MuteChatResponse>;
|
||||
|
||||
/** Управление сообщениями (правое окно) */
|
||||
|
||||
getMessages(request: GetMessagesRequest, metadata?: Metadata): Observable<GetMessagesResponse>;
|
||||
|
||||
/** вызывается либо из Gateway (для фото/аудио), либо напрямую */
|
||||
|
||||
sendMessage(request: SendMessageRequest, metadata?: Metadata): Observable<MessageDto>;
|
||||
|
||||
/** Новое */
|
||||
|
||||
editMessage(request: EditMessageRequest, metadata?: Metadata): Observable<MessageDto>;
|
||||
|
||||
deleteMessage(request: DeleteMessageRequest, metadata?: Metadata): Observable<DeleteMessageResponse>;
|
||||
|
||||
/** Статусы */
|
||||
@@ -151,7 +218,7 @@ export interface ChatServiceClient {
|
||||
}
|
||||
|
||||
export interface ChatServiceController {
|
||||
/** Управление чатами */
|
||||
/** Управление чатами (левая панель) */
|
||||
|
||||
createChat(
|
||||
request: CreateChatRequest,
|
||||
@@ -163,6 +230,15 @@ export interface ChatServiceController {
|
||||
metadata?: Metadata,
|
||||
): Promise<GetUserChatsResponse> | Observable<GetUserChatsResponse> | GetUserChatsResponse;
|
||||
|
||||
/** Открытие инфы о группе/собеседнике */
|
||||
|
||||
getChatDetails(
|
||||
request: GetChatDetailsRequest,
|
||||
metadata?: Metadata,
|
||||
): Promise<GetChatDetailsResponse> | Observable<GetChatDetailsResponse> | GetChatDetailsResponse;
|
||||
|
||||
/** Управление участниками группы */
|
||||
|
||||
joinChat(
|
||||
request: JoinChatRequest,
|
||||
metadata?: Metadata,
|
||||
@@ -173,20 +249,39 @@ export interface ChatServiceController {
|
||||
metadata?: Metadata,
|
||||
): Promise<LeaveChatResponse> | Observable<LeaveChatResponse> | LeaveChatResponse;
|
||||
|
||||
/** Управление сообщениями (история) */
|
||||
/** Админ кикает пользователя */
|
||||
|
||||
removeMember(
|
||||
request: RemoveMemberRequest,
|
||||
metadata?: Metadata,
|
||||
): Promise<RemoveMemberResponse> | Observable<RemoveMemberResponse> | RemoveMemberResponse;
|
||||
|
||||
/** Выключить/включить пуши для чата */
|
||||
|
||||
muteChat(
|
||||
request: MuteChatRequest,
|
||||
metadata?: Metadata,
|
||||
): Promise<MuteChatResponse> | Observable<MuteChatResponse> | MuteChatResponse;
|
||||
|
||||
/** Управление сообщениями (правое окно) */
|
||||
|
||||
getMessages(
|
||||
request: GetMessagesRequest,
|
||||
metadata?: Metadata,
|
||||
): Promise<GetMessagesResponse> | Observable<GetMessagesResponse> | GetMessagesResponse;
|
||||
|
||||
/** вызывается либо из Gateway (для фото/аудио), либо напрямую */
|
||||
|
||||
sendMessage(
|
||||
request: SendMessageRequest,
|
||||
metadata?: Metadata,
|
||||
): Promise<MessageDto> | Observable<MessageDto> | MessageDto;
|
||||
|
||||
/** Новое */
|
||||
|
||||
editMessage(
|
||||
request: EditMessageRequest,
|
||||
metadata?: Metadata,
|
||||
): Promise<MessageDto> | Observable<MessageDto> | MessageDto;
|
||||
|
||||
deleteMessage(
|
||||
request: DeleteMessageRequest,
|
||||
metadata?: Metadata,
|
||||
@@ -205,10 +300,14 @@ export function ChatServiceControllerMethods() {
|
||||
const grpcMethods: string[] = [
|
||||
"createChat",
|
||||
"getUserChats",
|
||||
"getChatDetails",
|
||||
"joinChat",
|
||||
"leaveChat",
|
||||
"removeMember",
|
||||
"muteChat",
|
||||
"getMessages",
|
||||
"sendMessage",
|
||||
"editMessage",
|
||||
"deleteMessage",
|
||||
"markAsRead",
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user