diff --git a/herodb/README.md b/herodb/README.md index 4ac2b11..edbc14c 100644 --- a/herodb/README.md +++ b/herodb/README.md @@ -2,6 +2,14 @@ A database library built on top of sled with model support. + + +## example + +```bash +cargo run --bin dbexample2 +``` + ## Features - Type-safe database operations diff --git a/herodb/readme.md b/herodb/readme.md deleted file mode 100644 index cc7c647..0000000 --- a/herodb/readme.md +++ /dev/null @@ -1,5 +0,0 @@ - - -```bash -cargo test zaz::tests -- --test-threads=1 -``` \ No newline at end of file diff --git a/herodb/src/models/biz/currency.rs b/herodb/src/models/biz/currency.rs index cdc7a01..28464a0 100644 --- a/herodb/src/models/biz/currency.rs +++ b/herodb/src/models/biz/currency.rs @@ -1,6 +1,6 @@ use chrono::{DateTime, Utc, Duration}; use serde::{Deserialize, Serialize}; -use crate::core::{SledModel, Storable}; // Import Sled traits from new location +use crate::db::base::{SledModel, Storable}; // Import Sled traits from db module /// Currency represents a monetary value with amount and currency code #[derive(Debug, Clone, Serialize, Deserialize)] @@ -54,3 +54,18 @@ impl CurrencyBuilder { }) } } + +// Implement Storable trait (provides default dump/load) +impl Storable for Currency {} + +// Implement SledModel trait +impl SledModel for Currency { + fn get_id(&self) -> String { + // Use the currency code as the ID + self.currency_code.clone() + } + + fn db_prefix() -> &'static str { + "currency" + } +} diff --git a/herodb/src/models/biz/product.rs b/herodb/src/models/biz/product.rs index b6ca886..678f601 100644 --- a/herodb/src/models/biz/product.rs +++ b/herodb/src/models/biz/product.rs @@ -1,6 +1,6 @@ use chrono::{DateTime, Utc, Duration}; use serde::{Deserialize, Serialize}; -use crate::core::{SledModel, Storable}; // Import Sled traits from new location +use crate::db::base::{SledModel, Storable}; // Import Sled traits from db module /// ProductType represents the type of a product @@ -355,4 +355,4 @@ impl SledModel for Product { } // Import Currency from the currency module -use super::Currency; +use crate::models::biz::Currency; diff --git a/herodb/src/models/biz/sale.rs b/herodb/src/models/biz/sale.rs index 9e49b11..bcfede1 100644 --- a/herodb/src/models/biz/sale.rs +++ b/herodb/src/models/biz/sale.rs @@ -1,5 +1,5 @@ -use super::product::Currency; // Use super:: for sibling module -use crate::core::{SledModel, Storable}; // Import Sled traits from new location +use crate::models::biz::Currency; // Use crate:: for importing from the module +use crate::db::base::{SledModel, Storable}; // Import Sled traits from db module // use super::db::Model; // Removed old Model trait import use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; diff --git a/herodb/tmp/dbexample2/currency/conf b/herodb/tmp/dbexample2/currency/conf new file mode 100644 index 0000000..4154d7c --- /dev/null +++ b/herodb/tmp/dbexample2/currency/conf @@ -0,0 +1,4 @@ +segment_size: 524288 +use_compression: false +version: 0.34 +vQÁ \ No newline at end of file diff --git a/herodb/tmp/dbexample2/currency/db b/herodb/tmp/dbexample2/currency/db new file mode 100644 index 0000000..d580733 Binary files /dev/null and b/herodb/tmp/dbexample2/currency/db differ diff --git a/herodb/tmp/dbexample2/product/conf b/herodb/tmp/dbexample2/product/conf new file mode 100644 index 0000000..4154d7c --- /dev/null +++ b/herodb/tmp/dbexample2/product/conf @@ -0,0 +1,4 @@ +segment_size: 524288 +use_compression: false +version: 0.34 +vQÁ \ No newline at end of file diff --git a/herodb/tmp/dbexample2/product/db b/herodb/tmp/dbexample2/product/db new file mode 100644 index 0000000..3e682e3 Binary files /dev/null and b/herodb/tmp/dbexample2/product/db differ diff --git a/herodb/tmp/dbexample2/sale/conf b/herodb/tmp/dbexample2/sale/conf new file mode 100644 index 0000000..4154d7c --- /dev/null +++ b/herodb/tmp/dbexample2/sale/conf @@ -0,0 +1,4 @@ +segment_size: 524288 +use_compression: false +version: 0.34 +vQÁ \ No newline at end of file diff --git a/herodb/tmp/dbexample2/sale/db b/herodb/tmp/dbexample2/sale/db new file mode 100644 index 0000000..a2c7114 Binary files /dev/null and b/herodb/tmp/dbexample2/sale/db differ