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