- Add comprehensive geofence feature implementation plan - Add locations documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
85 lines
2.5 KiB
Markdown
85 lines
2.5 KiB
Markdown
# Location Database Documentation
|
|
|
|
## Database File
|
|
- **Filename:** `locations.sqlite`
|
|
- **Type:** SQLite 3.x database
|
|
- **Encoding:** UTF-8
|
|
- **Current Records:** 367 location entries
|
|
|
|
## Database Schema
|
|
|
|
### Location Table
|
|
|
|
| Column | Type | Required | Default | Description |
|
|
|--------|------|----------|---------|-------------|
|
|
| `id` | INTEGER | - | AUTO_INCREMENT | Primary key |
|
|
| `latitude` | REAL | Yes | - | GPS latitude coordinate |
|
|
| `longitude` | REAL | Yes | - | GPS longitude coordinate |
|
|
| `timestamp` | TEXT | Yes | - | Time when location was recorded |
|
|
| `user_id` | INTEGER | No | 0 | Telegram user ID |
|
|
| `first_name` | TEXT | No | - | User's first name |
|
|
| `last_name` | TEXT | No | - | User's last name |
|
|
| `username` | TEXT | No | - | Telegram username |
|
|
| `marker_label` | TEXT | No | - | Custom label for map marker |
|
|
| `display_time` | TEXT | No | - | Formatted time for display |
|
|
| `chat_id` | INTEGER | No | 0 | Telegram chat ID |
|
|
| `battery` | INTEGER | No | - | Device battery level (0-100) |
|
|
| `speed` | REAL | No | - | Movement speed |
|
|
| `created_at` | TEXT | No | datetime('now') | Database insertion timestamp |
|
|
|
|
## Database Tables
|
|
- `Location` - Main table storing location data
|
|
- `sqlite_sequence` - SQLite internal table for auto-increment tracking
|
|
|
|
## Verification Commands
|
|
|
|
### Check database file
|
|
```bash
|
|
file locations.sqlite
|
|
```
|
|
|
|
### List all tables
|
|
```bash
|
|
sqlite3 locations.sqlite "SELECT name FROM sqlite_master WHERE type='table';"
|
|
```
|
|
|
|
### View table schema
|
|
```bash
|
|
sqlite3 locations.sqlite "PRAGMA table_info(Location);"
|
|
```
|
|
|
|
### Count records
|
|
```bash
|
|
sqlite3 locations.sqlite "SELECT COUNT(*) FROM Location;"
|
|
```
|
|
|
|
### Sample query
|
|
```bash
|
|
sqlite3 locations.sqlite "SELECT id, latitude, longitude, timestamp, user_id FROM Location LIMIT 5;"
|
|
```
|
|
|
|
## Future Development Ideas
|
|
|
|
### Potential Features
|
|
- [ ] Location history visualization
|
|
- [ ] Geofencing alerts
|
|
- [ ] Route tracking and analysis
|
|
- [ ] Speed monitoring and statistics
|
|
- [ ] Battery level tracking over time
|
|
- [ ] Multi-user location comparison
|
|
- [ ] Export to GPX/KML formats
|
|
- [ ] Privacy controls and data retention policies
|
|
|
|
### Optimization Opportunities
|
|
- [ ] Add indexes on frequently queried columns (user_id, timestamp)
|
|
- [ ] Implement data archival for old records
|
|
- [ ] Add spatial queries support (SQLite R*Tree extension)
|
|
- [ ] Implement location clustering for map display
|
|
|
|
### Integration Points
|
|
- [ ] REST API for location queries
|
|
- [ ] Real-time location updates via WebSocket/MQTT
|
|
- [ ] Map visualization frontend
|
|
- [ ] Mobile app data sync
|
|
- [ ] Export/backup functionality
|