Skip to main content

max / goingson

1.6 KB · 53 lines History Blame Raw
1 //! Repository trait definitions for data access abstraction.
2 //!
3 //! This module defines the contracts for data persistence operations.
4 //! Implementations are provided by database-specific crates (e.g., `goingson-db-sqlite`).
5
6 use crate::id_types::{
7 AnnotationId, AttachmentId, ContactEmailId, ContactId, ContactPhoneId, CustomFieldId,
8 EmailAccountId, EmailId, EventId, MilestoneId, ProjectId, SavedViewId, SocialHandleId,
9 StatusTokenId, SubtaskId, SyncAccountId, TaskId, UserId,
10 };
11 use async_trait::async_trait;
12 use chrono::{DateTime, NaiveDate, Utc};
13 use std::collections::HashSet;
14 use uuid::Uuid;
15
16 use crate::contact::{
17 Contact, ContactCustomField, ContactEmail, ContactEmailEntry, ContactPhone, NewContact,
18 NewContactCustomField, NewContactEmail, NewContactPhone, NewSocialHandle, SocialHandle,
19 UpdateContact,
20 };
21 use crate::error::CoreError;
22 use crate::models::{
23 Annotation, Attachment, Email, EmailAccount, EmailAuthType, EmailThread, Event,
24 FolderSyncState, NewAttachment, NewEmail, NewEmailWithTracking, NewEvent, NewProject,
25 NewSavedView, NewTask, PositiveMinutes, Project, SavedView, StatusToken, Subtask, Task,
26 TaskFilterQuery, TimeSession, TimeTrackingSummary, TokenState, UpdateTask, User,
27 };
28
29 /// Convenience type alias for repository operation results.
30 pub type Result<T> = std::result::Result<T, CoreError>;
31
32 mod contact;
33 mod email;
34 mod event;
35 mod misc;
36 mod project;
37 mod review;
38 mod search;
39 mod stats;
40 mod task;
41 mod user;
42
43 pub use contact::*;
44 pub use email::*;
45 pub use event::*;
46 pub use misc::*;
47 pub use project::*;
48 pub use review::*;
49 pub use search::*;
50 pub use stats::*;
51 pub use task::*;
52 pub use user::*;
53