34 lines
868 B
Rust
34 lines
868 B
Rust
use chrono::{DateTime, Utc};
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
use super::message::MessageNewService;
|
|
use models::{RoomId, Uuid};
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct SearchResultService {
|
|
pub q: String,
|
|
pub room: Uuid,
|
|
pub messages: Vec<SearchMessageHitService>,
|
|
pub total: i64,
|
|
pub took_ms: i64,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct SearchMessageHitService {
|
|
#[serde(flatten)]
|
|
pub message: MessageNewService,
|
|
pub highlighted_content: String,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
|
pub struct SearchClient {
|
|
pub q: String,
|
|
pub room: Option<RoomId>,
|
|
pub start_time: Option<DateTime<Utc>>,
|
|
pub end_time: Option<DateTime<Utc>>,
|
|
pub sender_id: Option<Uuid>,
|
|
pub content_type: Option<String>,
|
|
pub limit: Option<u64>,
|
|
pub offset: Option<u64>,
|
|
}
|