Skip to main content

max / goingson

1.6 KB · 52 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 async_trait::async_trait;
7 use chrono::{DateTime, NaiveDate, Utc};
8 use std::collections::HashSet;
9 use crate::id_types::{
10 AnnotationId, AttachmentId, ContactEmailId, ContactId, ContactPhoneId, CustomFieldId,
11 EmailAccountId, EmailId, EventId, MilestoneId, ProjectId, SavedViewId,
12 SocialHandleId, StatusTokenId, SubtaskId, SyncAccountId, TaskId, UserId,
13 };
14 use uuid::Uuid;
15
16 use crate::contact::{
17 Contact, ContactCustomField, ContactEmail, ContactEmailEntry, ContactPhone, NewContact, NewContactCustomField,
18 NewContactEmail, NewContactPhone, NewSocialHandle, SocialHandle, UpdateContact,
19 };
20 use crate::error::CoreError;
21 use crate::models::{
22 Annotation, Attachment, Email, EmailAccount, EmailAuthType, EmailThread, Event,
23 FolderSyncState, NewAttachment, NewEmail, NewEmailWithTracking, NewEvent, NewProject,
24 NewSavedView, NewTask, PositiveMinutes, Project, SavedView, StatusToken, Subtask, Task, TaskFilterQuery, TimeSession,
25 TimeTrackingSummary, TokenState, UpdateTask, User,
26 };
27
28 /// Convenience type alias for repository operation results.
29 pub type Result<T> = std::result::Result<T, CoreError>;
30
31 mod contact;
32 mod email;
33 mod event;
34 mod misc;
35 mod project;
36 mod review;
37 mod search;
38 mod stats;
39 mod task;
40 mod user;
41
42 pub use contact::*;
43 pub use email::*;
44 pub use event::*;
45 pub use misc::*;
46 pub use project::*;
47 pub use review::*;
48 pub use search::*;
49 pub use stats::*;
50 pub use task::*;
51 pub use user::*;
52