systemprompt_content/models/
search.rs1use serde::{Deserialize, Serialize};
2use systemprompt_identifiers::{CategoryId, ContentId, SourceId};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct SearchRequest {
6 pub query: String,
7 pub filters: Option<SearchFilters>,
8 pub limit: Option<i64>,
9}
10
11#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct SearchFilters {
13 pub category_id: Option<CategoryId>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize, sqlx::FromRow)]
17pub struct SearchResult {
18 pub id: ContentId,
19 pub slug: String,
20 pub title: String,
21 pub description: String,
22 pub image: Option<String>,
23 pub view_count: i64,
24 pub source_id: SourceId,
25 pub category_id: Option<CategoryId>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
29pub struct SearchResponse {
30 pub results: Vec<SearchResult>,
31 pub total: usize,
32}