diff --git a/README.md b/README.md index 97c1ab6..43a7dcb 100644 --- a/README.md +++ b/README.md @@ -1 +1,64 @@ # Task WhatsApp Chatbot + +## Future Steps: User Verification System + +### Core Principles +1. **Trust-but-Verify Approach**: Leverage WhatsApp's message metadata to minimize API calls while maintaining security +2. **Progressive Validation**: Verify users naturally through interactions rather than upfront checks +3. **Background Reconciliation**: Use periodic syncs to maintain data accuracy without impacting real-time performance + +### Message Processing Flow +```mermaid +graph TD + A[Webhook Received] --> B{Valid Payload?} + B -->|No| C[Ignore] + B -->|Yes| D{From Known Group?} + D -->|Yes| E[Update User Last Seen] + D -->|No| F{Private Chat + Known User?} + F -->|No| C + F -->|Yes| E + E --> G{/tarea Command?} + G -->|No| C + G -->|Yes| H{New User?} + H -->|Yes| I[Add to DB] + H -->|No| J[Process Command] +``` + +### Database Enhancements +- **Users Table Additions**: + - `first_seen`: Timestamp of first interaction + - `last_seen`: Timestamp of most recent activity + - `last_confirmed`: Timestamp of last API verification + - `active_groups`: JSON array of groups user was seen in + - `verification_status`: Enum (unverified/verified/flagged) + +### Periodic Sync Strategy +1. **Rotating Group Check**: + - Verify 1-2 groups per sync cycle + - Prioritize recently active groups +2. **User Reconciliation**: + - Add newly discovered users + - Update `last_confirmed` for active users + - Flag inactive users after N days of no activity +3. **Optimizations**: + - Cache active group IDs in memory + - Batch database writes + - Exponential backoff for API failures + +### Security Considerations +- Reject messages from: + - Non-community groups + - Unknown private chats +- Implement rate limiting +- Maintain audit logs of verification events + +### Future Extensibility +1. **User Profiles**: + - Store names/profile pictures when available + - Track interaction history +2. **Reputation System**: + - Activity scoring + - Trust levels +3. **Notification Preferences**: + - Per-user settings + - Do-not-disturb periods