use sea_orm::entity::prelude::*; use uuid::Uuid; #[derive(Copy, Clone, Default, Debug, DeriveEntity)] pub struct Entity; impl EntityName for Entity { fn table_name(&self) -> &str { "metadata" } } #[derive(Clone, Debug, PartialEq, DeriveModel, DeriveActiveModel)] pub struct Model { pub uuid: Uuid, pub key: String, pub value: String, } #[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)] pub enum Column { Uuid, Key, Value, } #[derive(Copy, Clone, Debug, EnumIter, DerivePrimaryKey)] pub enum PrimaryKey { Uuid, } impl PrimaryKeyTrait for PrimaryKey { type ValueType = Uuid; fn auto_increment() -> bool { false } } #[derive(Copy, Clone, Debug, EnumIter)] pub enum Relation {} impl ColumnTrait for Column { type EntityName = Entity; fn def(&self) -> ColumnDef { match self { Self::Uuid => ColumnType::Uuid.def(), Self::Key => ColumnType::String(None).def(), Self::Value => ColumnType::String(None).def(), } } } impl RelationTrait for Relation { fn def(&self) -> RelationDef { unreachable!() } } impl ActiveModelBehavior for ActiveModel {}