AkurAI Build
Menu

Public repository / master

AkurAI-Notes / crates/notes-core/src/metadata/mod.rs

Latest change 21fd83f4a6eb769a0ee34aa30f721b5cdc6881af - Fix IDP OAuth: split public issuer vs internal loopback URL for token exchange by Claude Code

pub struct ObjectMetadata {
    pub name: &'static str,
    pub fields: Vec<FieldMetadata>,
}

pub struct FieldMetadata {
    pub name: &'static str,
    pub field_type: &'static str,
    pub required: bool,
    pub embed: bool,
}

impl ObjectMetadata {
    pub fn standard_objects() -> Vec<Self> {
        vec![
            ObjectMetadata {
                name: "notes",
                fields: vec![
                    FieldMetadata {
                        name: "title",
                        field_type: "text",
                        required: true,
                        embed: true,
                    },
                    FieldMetadata {
                        name: "body",
                        field_type: "text",
                        required: false,
                        embed: true,
                    },
                    FieldMetadata {
                        name: "format",
                        field_type: "text",
                        required: false,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "notebookId",
                        field_type: "int",
                        required: false,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "ownerSub",
                        field_type: "text",
                        required: true,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "tagIds",
                        field_type: "text",
                        required: false,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "createdAt",
                        field_type: "int",
                        required: false,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "updatedAt",
                        field_type: "int",
                        required: false,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "archived",
                        field_type: "bool",
                        required: false,
                        embed: false,
                    },
                ],
            },
            ObjectMetadata {
                name: "notebooks",
                fields: vec![
                    FieldMetadata {
                        name: "name",
                        field_type: "text",
                        required: true,
                        embed: true,
                    },
                    FieldMetadata {
                        name: "description",
                        field_type: "text",
                        required: false,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "ownerSub",
                        field_type: "text",
                        required: true,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "color",
                        field_type: "text",
                        required: false,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "createdAt",
                        field_type: "int",
                        required: false,
                        embed: false,
                    },
                ],
            },
            ObjectMetadata {
                name: "tags",
                fields: vec![
                    FieldMetadata {
                        name: "name",
                        field_type: "text",
                        required: true,
                        embed: true,
                    },
                    FieldMetadata {
                        name: "ownerSub",
                        field_type: "text",
                        required: true,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "color",
                        field_type: "text",
                        required: false,
                        embed: false,
                    },
                    FieldMetadata {
                        name: "createdAt",
                        field_type: "int",
                        required: false,
                        embed: false,
                    },
                ],
            },
        ]
    }
}