chore: auto-generate protobuf files [skip ci]

This commit is contained in:
github-actions[bot]
2026-04-18 08:12:12 +00:00
parent 07744f852e
commit 5414241f06
3 changed files with 908 additions and 144 deletions

View File

@@ -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",
];