use crate::data::entities::CustomField; use crate::data::repositories::{DataRepository, DataRepositoryInner}; use crate::data_provider::{SqliteDbLayer, TableAccessQuerySet}; use rusqlite::{Error, Params, Row}; pub type CustomFieldRepository = DataRepository; pub type CustomFieldRepositoryInner = DataRepositoryInner; pub type CustomFieldDbLayer = SqliteDbLayer; #[derive(Clone)] pub struct CustomFieldsQuerySet; impl TableAccessQuerySet for CustomFieldsQuerySet { fn load() -> &'static str { "SELECT id, name, identifier FROM custom_fields" } fn save() -> &'static str { "UPDATE custom_fields SET name = ?1, identifier = ?2 WHERE id = ?3" } fn add() -> &'static str { "INSERT INTO custom_fields (name, identifier) VALUES (?1, ?2)" } fn name() -> &'static str { "custom_fields" } fn from_sql(row: &Row) -> Result { Ok(CustomField { id: row.get(0)?, name: row.get(1)?, identifier: row.get(2)?, }) } fn insert_params(entity: &CustomField) -> impl Params { (&entity.name, &entity.identifier) } fn update_params(entity: &CustomField) -> impl Params { (&entity.name, &entity.identifier, entity.id) } }