systemprompt_files/
extension.rs1use systemprompt_extension::prelude::*;
11
12#[derive(Debug, Clone, Copy, Default)]
13pub struct FilesExtension;
14
15impl Extension for FilesExtension {
16 fn metadata(&self) -> ExtensionMetadata {
17 ExtensionMetadata {
18 id: "files",
19 name: "Files",
20 version: env!("CARGO_PKG_VERSION"),
21 }
22 }
23
24 fn schemas(&self) -> Vec<SchemaDefinition> {
25 vec![
26 SchemaDefinition::new("files", include_str!("../schema/files.sql"))
27 .with_required_columns(vec![
28 "id".into(),
29 "path".into(),
30 "mime_type".into(),
31 "created_at".into(),
32 ]),
33 SchemaDefinition::new("content_files", include_str!("../schema/content_files.sql"))
34 .with_required_columns(vec!["id".into(), "content_id".into(), "file_id".into()]),
35 SchemaDefinition::new(
36 "ai_image_analytics",
37 include_str!("../schema/ai_image_analytics.sql"),
38 ),
39 ]
40 }
41
42 fn dependencies(&self) -> Vec<&'static str> {
43 vec!["users", "content"]
44 }
45}
46
47register_extension!(FilesExtension);