diff --git a/.gitignore b/.gitignore index 73aa31e..3542ed2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ target .snfoundry_cache/ +.tool-versions diff --git a/src/chainlib/ChainLib.cairo b/src/chainlib/ChainLib.cairo index fa16763..a84186f 100644 --- a/src/chainlib/ChainLib.cairo +++ b/src/chainlib/ChainLib.cairo @@ -8,6 +8,33 @@ pub mod ChainLib { use crate::interfaces::IChainLib::IChainLib; use crate::base::types::{TokenBoundAccount, User, Role, Rank}; + #[derive(Copy, Drop, Serde, starknet::Store, PartialEq, Debug)] + pub enum ContentType { + #[default] + Text, + Video, + Image, + // Any other content type + } + + #[derive(Copy, Drop, Serde, starknet::Store, PartialEq, Debug)] + pub enum Category { + Software, + #[default] + Education, + Literature, + Art + } + + #[derive(Copy, Drop, Serde, starknet::Store, Debug)] + pub struct ContentMetadata { + pub content_id: felt252, + pub title: felt252, + pub description: felt252, + pub content_type: ContentType, + pub creator: ContractAddress, + pub category: Category + } #[storage] struct Storage { @@ -19,6 +46,9 @@ pub mod ChainLib { next_course_id: u256, user_id: u256, users: Map, + creators_content: Map::, + content: Map::, + content_tags: Map::> }