Data Model
"/home/yossef/notes/git/projects/inguide/Data Model.md"
path: inguide/Data Model.md
- **fileName**: Data Model
- **Created on**: 2026-06-16 00:48:42
Data Model
Purpose: Database schemas, domain entities, and persistent state.
Room Database
File: app/src/main/java/com/inguide/app/data/AppDatabase.kt
- Name:
inguide_database - Entities:
ScheduleItem,Chat,Message,User,AttendanceRecord - Schema versions: 2 (no migrations —
fallbackToDestructiveMigrationon change)
Entities
| Entity | Table | Key Fields |
|---|---|---|
ScheduleItem |
schedule_items |
id, title, type(lecture/lab), day, startTime, endTime, room, instructor, notes, color, locationId |
Chat |
chats |
id, name, createdAt, updatedAt |
Message |
messages |
id, chatId, content, role(user/assistant/system), timestamp |
User |
users |
id, email, name, avatarUrl, bio |
AttendanceRecord |
attendance_records |
id, scheduleItemId, date, status(present/absent/excused), timestamp |
POJOs (no Room table)
| Model | Fields | Used By |
|---|---|---|
GeoPosition |
longitude, latitude, floorId?, confidence | AR + indoor positioning |
MagneticFingerprint |
x, y, longitude, latitude, Bx, By, Bz, timestamp | Indoor positioning |
LocationPoint |
id, longitude, latitude, altitude, accuracy, timestamp, label | Map metadata |
AccountType |
Enum: STUDENT_EDU, BUSINESS_WORKSPACE, HOSPITAL_HEALTHCARE, PERSONAL_GMAIL, UNKNOWN | Auth |
Session State
File: app/src/main/java/com/inguide/app/startup/AppSessionSnapshot.kt
Persists: lastMainDestination, home state (scroll, rooms), schedule state (filter, scroll), chat state (draft), map state (center lng/lat, zoom, bearing, pitch, floorId, searchOpen)
Serialized as JSON via Gson, saved to file, restored on cold start.
Related: ./modules/ar.md, ./Configuration.md
continue:[[]]
before:[[]]