Skip to main content

systemprompt_content/models/
search.rs

1use 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}