// contracts/proto/media/v1/media.proto syntax = "proto3"; package media.v1; option go_package = "git.lendry.ru/lendry-erp/proto.git/go;pb"; service MediaService { // Загрузка файла rpc Upload(UploadRequest) returns (UploadResponse); // Генерация временной ссылки для скачивания/просмотра rpc GetPresignedUrl(GetPresignedUrlRequest) returns (GetPresignedUrlResponse); } message UploadRequest { string file_name = 1; bytes data = 2; // Сами байты файла string mode = 3; // "avatar", "chat", "raw" } message UploadResponse { string file_name = 1; int64 size = 2; } message GetPresignedUrlRequest { string file_name = 1; bool is_public = 2; // Если true, ссылка живет 24 часа, иначе 2 минуты } message GetPresignedUrlResponse { string url = 1; }