Strona główna › Biblioteka › Wiadomości

Wiadomości

Bezpośrednia komunikacja między użytkownikami nieruchomości z plikami i odpowiedziami.

Przegląd

Moduł wiadomości zapewnia bezpieczny system komunikacji między użytkownikami nieruchomości (właścicielami, najemcami i ich agentami). Użytkownicy mogą wysyłać bezpośrednie wiadomości, załączać pliki i odpowiadać na poprzednie wiadomości w stylu Telegram.

Wiadomości bezpośrednie

Wysyłaj prywatne wiadomości jeden na jeden między użytkownikami nieruchomości. Wiadomości są widoczne tylko dla nadawcy i odbiorcy.

Załączniki

Załączaj do 10 plików na wiadomość (obrazy, dokumenty, archiwa). Maksymalnie 10 MB na plik.

Odpowiedzi na wiadomości

Odpowiadaj na konkretne wiadomości z wizualnym linkiem do oryginału, jak w Telegramie.

Wklej ze schowka

Wklejaj obrazy bezpośrednio ze schowka (Ctrl+V) aby szybko załączyć zrzuty ekranu.

Powiadomienia

Globalny znaczek pokazuje liczbę nieprzeczytanych. Menu rozwijane wyświetla ostatnie wiadomości.

Powiadomienia e-mail

Otrzymuj powiadomienia e-mail o nowych wiadomościach, gdy nie jesteś aktywnie na stronie.

Typy plików

Obsługiwane są następujące formaty plików:

Obrazy

JPG, JPEG, PNG, GIF, WebP, BMP, SVG

Dokumenty

PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, ODT, ODS, ODP, TXT, RTF, CSV

Archiwa

ZIP, RAR, 7Z, TAR, GZ

Limity:
  • Maksymalny rozmiar pliku: 10 MB
  • Maksymalna liczba plików na wiadomość: 10
  • Maksymalna długość wiadomości: 1000 znaków

Przechowywanie plików

Pliki są przechowywane w bezpiecznym magazynie chmurowym S3 pod następującą ścieżką:

messages_chat/{message_id}/{file_hash}.{extension}

Pliki są dostępne tylko dla uczestników rozmowy przez bezpieczne linki.

Jak to działa

Proces wymiany wiadomości składa się z następujących kroków:

1

Wybór odbiorcy

Wybierz użytkownika nieruchomości z listy kontaktów, aby rozpocząć rozmowę.

2

Napisz wiadomość

Wprowadź tekst wiadomości i opcjonalnie załącz pliki lub wklej obrazy ze schowka.

3

Wyślij

Kliknij przycisk wysyłania. Wiadomość zostanie dostarczona natychmiast, a odbiorca otrzyma powiadomienie e-mail.

4

Otrzymaj odpowiedź

Otrzymuj odpowiedzi w czasie rzeczywistym. Strona aktualizuje się automatycznie co 30 sekund.

Uprawnienia

Dostęp do wiadomości regulują następujące zasady:

Akcja Kto może
Wyślij wiadomość Każdy użytkownik nieruchomości
Przeglądaj wiadomości Tylko nadawca i odbiorca
Załącz pliki Każdy użytkownik nieruchomości
Edytuj / Usuń Zabronione dla wszystkich użytkowników

REST API

REST API pozwala zintegrować system wiadomości z aplikacjami. Użyj poniższych endpointów do odbierania i wysyłania wiadomości.

Uwaga dotycząca warstwy usługowej

GET  /api/v1/messages/unread-count                    - Pobierz liczbę nieprzeczytanych
GET  /api/v1/messages/recent                          - Pobierz ostatnie wiadomości
GET  /api/v1/properties/{id}/messages                 - Lista wiadomości
POST /api/v1/properties/{id}/messages                 - Utwórz wiadomość
GET  /api/v1/properties/{id}/messages/{mid}           - Pobierz szczegóły wiadomości
POST /api/v1/properties/{id}/messages/{mid}/read      - Oznacz wiadomość jako przeczytaną
GET  /api/v1/properties/{id}/messages/unread-count    - Pobierz nieprzeczytane wiadomości dla nieruchomości

Przykład tworzenia wiadomości

Aby utworzyć wiadomość, wyślij żądanie POST z treścią JSON zawierającą ID odbiorcy i tekst wiadomości.

POST /api/v1/properties/019fe131-6b2a-7c41-9d8e-3f5a2c7b1e04/messages
Content-Type: multipart/form-data

recipient_id: 019fe131-7a3d-7e52-8c19-4b6d3e9f2a15
message: Hello, please find the attached documents.
reply_to_id: 019fe131-8b4c-7f63-9a2d-5c7e4f1a3b26  (optional)
files[]: document.pdf
files[]: photo.jpg

Przykładowa odpowiedź

{
  "id": 456,
  "message": "Hello, please find the attached documents.",
  "createdAt": "2026-01-19T14:30:00+00:00",
  "readAt": null,
  "sender": {
    "id": 8,
    "name": "Owner Name",
    "email": "[email protected]"
  },
  "recipient": {
    "id": 15,
    "name": "Tenant Name",
    "email": "[email protected]"
  },
  "property": {
    "id": 5,
    "name": "Apartment #12"
  },
  "replyTo": {
    "id": 123,
    "publicId": "019fe131-8b4c-7f63-9a2d-5c7e4f1a3b26",
    "message": "Previous message text...",
    "sender": {"id": 15, "name": "Tenant Name"}
  },
  "hasFiles": true,
  "filesCount": 2,
  "files": [
    {
      "id": 1,
      "originalName": "document.pdf",
      "mimeType": "application/pdf",
      "fileSize": 102400,
      "fileSizeFormatted": "100 KB",
      "isImage": false,
      "isDocument": true,
      "isArchive": false,
      "url": "https://s3.example.com/messages_chat/456/abc123.pdf",
      "createdAt": "2026-01-19T14:30:00+00:00"
    },
    {
      "id": 2,
      "originalName": "photo.jpg",
      "mimeType": "image/jpeg",
      "fileSize": 256000,
      "fileSizeFormatted": "250 KB",
      "isImage": true,
      "isDocument": false,
      "isArchive": false,
      "url": "https://s3.example.com/messages_chat/456/def456.jpg",
      "createdAt": "2026-01-19T14:30:00+00:00"
    }
  ]
}

reply_to_id of a following message is filled with replyTo.publicId above — the numeric id in the response is kept only for polling (client-side last_id comparison), not for addressing.

Swagger / OpenAPI

Pełna dokumentacja API jest dostępna w Swagger /api/v1/doc