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

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:[[]]