From 6c20561ede165fe548b619ba0442a9cb0f39daef Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofanov Date: Mon, 31 Aug 2026 11:52:54 +0300 Subject: [PATCH] Repository types defined --- src/data/entities.rs | 5 +++++ src/data_provider/card_states.rs | 4 +++- src/data_provider/custom_fields.rs | 7 +++++-- src/data_provider/decks.rs | 6 +++++- src/data_provider/word_groups.rs | 8 ++++++-- src/data_provider/words.rs | 5 ++++- 6 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/data/entities.rs b/src/data/entities.rs index 816bd02..f4027fa 100644 --- a/src/data/entities.rs +++ b/src/data/entities.rs @@ -203,6 +203,11 @@ impl CardState { } } +pub struct CustomField{ + pub id: Id, + pub name: String, +} + #[derive(Copy)] pub struct EntityHandle { pub(crate) id: Id, diff --git a/src/data_provider/card_states.rs b/src/data_provider/card_states.rs index effeef5..837dfba 100644 --- a/src/data_provider/card_states.rs +++ b/src/data_provider/card_states.rs @@ -1,5 +1,5 @@ use crate::data::entities::{CardState, DeckSettings}; -use crate::data_provider::TableAccessQuerySet; +use crate::data_provider::{SqliteDbLayer, TableAccessQuerySet}; use crate::notification::NotificationData::{DbLoadError, DbSaveError}; use crate::notification::{MaybeError, NotificationData}; use chrono::NaiveDate; @@ -7,7 +7,9 @@ use fsrs::MemoryState; use log::info; use rusqlite::{Connection, Error, Params, Row, params}; use std::time::Instant; +use crate::data::repositories::DataRepository; +type CardStateRepository = DataRepository>; pub struct CardStatesQuerySet; impl TableAccessQuerySet for CardStatesQuerySet { fn load() -> &'static str { diff --git a/src/data_provider/custom_fields.rs b/src/data_provider/custom_fields.rs index 2cb9e0a..a3f2454 100644 --- a/src/data_provider/custom_fields.rs +++ b/src/data_provider/custom_fields.rs @@ -1,7 +1,10 @@ -use crate::data::entities::WordGroup; -use crate::data_provider::TableAccessQuerySet; +use crate::data::entities::{CustomField, WordGroup}; +use crate::data::repositories::DataRepository; +use crate::data_provider::{SqliteDbLayer, TableAccessQuerySet}; use rusqlite::{Error, Params, Row}; +type CustomFieldRepository = DataRepository>; + pub struct CustomFieldsQuerySet; impl TableAccessQuerySet for CustomFieldsQuerySet { fn load() -> &'static str { diff --git a/src/data_provider/decks.rs b/src/data_provider/decks.rs index 11526a2..f23b499 100644 --- a/src/data_provider/decks.rs +++ b/src/data_provider/decks.rs @@ -1,10 +1,14 @@ use crate::core::srs::OrderMode; use crate::data::entities::{CardState, DeckSettings}; -use crate::data_provider::TableAccessQuerySet; +use crate::data_provider::{SqliteDbLayer, TableAccessQuerySet}; use crate::notification::NotificationData::{DbLoadError, DbSaveError}; use crate::notification::{MaybeError, NotificationData}; use chrono::NaiveDate; use rusqlite::{Connection, Error, Params, Row}; +use crate::data::repositories::DataRepository; +use crate::data_provider::card_states::CardStatesQuerySet; + +type DeckRepository = DataRepository>; pub struct DeckQuerySet; impl TableAccessQuerySet for DeckQuerySet { diff --git a/src/data_provider/word_groups.rs b/src/data_provider/word_groups.rs index 2c3b5d1..eaafd14 100644 --- a/src/data_provider/word_groups.rs +++ b/src/data_provider/word_groups.rs @@ -1,6 +1,10 @@ -use crate::data::entities::WordGroup; -use crate::data_provider::TableAccessQuerySet; +use crate::data::entities::{DeckSettings, WordGroup}; +use crate::data_provider::{SqliteDbLayer, TableAccessQuerySet}; use rusqlite::{Error, Params, Row}; +use crate::data::repositories::DataRepository; +use crate::data_provider::decks::DeckQuerySet; + +type WordGroupRepository = DataRepository>; pub struct WordGroupQuerySet; impl TableAccessQuerySet for WordGroupQuerySet { diff --git a/src/data_provider/words.rs b/src/data_provider/words.rs index e32e066..3491c50 100644 --- a/src/data_provider/words.rs +++ b/src/data_provider/words.rs @@ -1,10 +1,13 @@ use crate::data::entities::{WordData, WordGroup}; -use crate::data_provider::TableAccessQuerySet; +use crate::data_provider::{SqliteDbLayer, TableAccessQuerySet}; use crate::notification::NotificationData::{DbLoadError, DbSaveError}; use crate::notification::{MaybeError, NotificationData}; use litemap::LiteMap; use rusqlite::{Connection, Error, Params, Row, params}; use std::collections::HashMap; +use crate::data::repositories::DataRepository; + +type DeckRepository = DataRepository>; pub struct WordQuerySet; impl TableAccessQuerySet for WordQuerySet {