Skip to main content

things3_core/database/
mod.rs

1//! Database module - organized submodules for better maintainability
2
3pub(crate) mod conversions;
4mod core;
5pub mod date_utils;
6mod health;
7pub mod mappers;
8mod mutations;
9pub(crate) mod path_discovery;
10pub(crate) mod pool;
11mod queries;
12pub mod query_builders;
13pub(crate) mod stats;
14pub mod tag_utils;
15#[cfg(test)]
16mod tests;
17pub mod validators;
18
19// Re-export everything from core for backward compatibility
20pub use core::*;
21
22// Re-export conversions
23pub use conversions::{
24    deserialize_tags_from_blob, naive_date_to_things_timestamp, serialize_tags_to_blob,
25};
26// Crate-internal helpers used by sibling submodules (mappers.rs, core.rs).
27pub(crate) use conversions::{safe_timestamp_convert, things_date_to_naive_date};
28
29// Re-export path discovery
30pub use path_discovery::get_default_database_path;
31
32// Re-export pool/health types
33pub use pool::{
34    ComprehensiveHealthStatus, DatabasePoolConfig, PoolHealthStatus, PoolMetrics,
35    SqliteOptimizations,
36};
37
38// Re-export stats
39pub use stats::DatabaseStats;
40
41// Re-export mapper functions for easy access
42pub use mappers::{map_project_row, map_task_row};
43
44// Re-export query builders
45pub use query_builders::TaskUpdateBuilder;
46
47// Re-export validators
48pub use validators::{validate_area_exists, validate_project_exists, validate_task_exists};
49
50// Re-export date utilities
51pub use date_utils::{
52    add_days, format_date_for_display, is_date_in_future, is_date_in_past,
53    is_valid_things_timestamp, parse_date_from_string, safe_naive_date_to_things_timestamp,
54    safe_things_date_to_naive_date, validate_date_range, DateConversionError, DateValidationError,
55};