lots of configuration progress.
This commit is contained in:
@@ -26,8 +26,10 @@ erDiagram
|
||||
text rule_text "Natural Language Rule"
|
||||
int priority "Processing Order"
|
||||
boolean organize_enabled "Default: True"
|
||||
string folder_type "Default: 'destination'"
|
||||
int total_count "Default: 0"
|
||||
int pending_count "Default: 0"
|
||||
int emails_count "Default: 0"
|
||||
json recent_emails "JSON Array"
|
||||
datetime created_at "Default: UTC Now"
|
||||
datetime updated_at "Default: UTC Now, On Update"
|
||||
@@ -83,8 +85,10 @@ The `Folder` entity stores email organization rules and metadata for each user's
|
||||
| rule_text | Text | Nullable | Natural language description of the folder rule |
|
||||
| priority | Integer | Nullable | Processing order (0=normal, 1=high) |
|
||||
| organize_enabled | Boolean | Default: True | Whether the organization rule is active |
|
||||
| folder_type | String(20) | Default: 'destination' | Folder type: 'tidy' or 'destination' |
|
||||
| total_count | Integer | Default: 0 | Total number of emails in the folder |
|
||||
| pending_count | Integer | Default: 0 | Number of emails waiting to be processed |
|
||||
| emails_count | Integer | Default: 0 | Number of emails moved to this destination folder |
|
||||
| recent_emails | JSON | Default: [] | Array of recent email metadata |
|
||||
| created_at | DateTime | Default: datetime.utcnow | Timestamp of folder creation |
|
||||
| updated_at | DateTime | Default: datetime.utcnow, On Update | Timestamp of last update |
|
||||
@@ -100,6 +104,9 @@ The `Folder` entity stores email organization rules and metadata for each user's
|
||||
- Folder name must be unique per user
|
||||
- Rule text can be null (for manually created folders)
|
||||
- Priority values: 0 (normal), 1 (high priority)
|
||||
- Folder types:
|
||||
- 'tidy': Folders containing emails to be processed (e.g., Inbox)
|
||||
- 'destination': Folders that are targets for email organization (default)
|
||||
- Recent emails array stores JSON objects with subject and date information
|
||||
|
||||
## Data Constraints
|
||||
@@ -128,7 +135,8 @@ The `Folder` entity stores email organization rules and metadata for each user's
|
||||
- `User.created_at`, `User.updated_at`: Current UTC timestamp
|
||||
- `Folder.created_at`, `Folder.updated_at`: Current UTC timestamp
|
||||
- `Folder.organize_enabled`: True
|
||||
- `Folder.total_count`, `Folder.pending_count`: 0
|
||||
- `Folder.folder_type`: 'destination'
|
||||
- `Folder.total_count`, `Folder.pending_count`, `Folder.emails_count`: 0
|
||||
- `Folder.recent_emails`: Empty array
|
||||
|
||||
## JSON Data Structures
|
||||
@@ -219,6 +227,49 @@ The `recent_emails` field stores an array of JSON objects:
|
||||
- Batch updates for email counts
|
||||
- JSON operations for recent emails metadata
|
||||
|
||||
## Folder Types
|
||||
|
||||
The system supports two distinct types of folders, each with different purposes and behaviors:
|
||||
|
||||
### Tidy Folders
|
||||
|
||||
Folders with `folder_type = 'tidy'` are source folders that contain emails waiting to be processed and organized.
|
||||
|
||||
**Characteristics:**
|
||||
- Display pending and processed email counts
|
||||
- Can have organization rules enabled/disabled
|
||||
- Support viewing pending emails
|
||||
- Example: Inbox folder
|
||||
|
||||
**UI Representation:**
|
||||
- Shows "pending count" and "processed count" badges
|
||||
- Includes "View Pending" button if there are pending emails
|
||||
- May include priority indicators
|
||||
|
||||
### Destination Folders
|
||||
|
||||
Folders with `folder_type = 'destination'` are target folders where emails are moved from other folders during organization.
|
||||
|
||||
**Characteristics:**
|
||||
- Display count of emails moved to this folder
|
||||
- Typically don't have organization rules (or they're ignored)
|
||||
- Focus on showing how many emails have been organized into them
|
||||
- Example: "Projects", "Finance", "Personal" folders
|
||||
|
||||
**UI Representation:**
|
||||
- Shows "emails count" badge
|
||||
- Simpler interface without pending/processed indicators
|
||||
- Focus on folder management and viewing contents
|
||||
|
||||
### Folder Type Determination
|
||||
|
||||
Folder types are determined as follows:
|
||||
- During IMAP synchronization:
|
||||
- Folders named "inbox" (case-insensitive) are automatically set as 'tidy'
|
||||
- All other folders are set as 'destination'
|
||||
- Manually created folders default to 'destination'
|
||||
- Folder type can be changed through administrative functions
|
||||
|
||||
## Future Data Model Considerations
|
||||
|
||||
### Potential Enhancements
|
||||
|
||||
Reference in New Issue
Block a user