Add Prayer Reminder, Dhikr Counter, Qibla Finder, Halal Monitor updates

- Prayer reminder: /prayer page with 5 daily times, countdown, alAdhan API
- Dhikr counter: /dhikr page with 3 presets, custom counter, haptics, DB tracking
- Qibla finder: /qibla page with compass SVG, DeviceOrientation, bearing to Kaaba
- Halal Monitor: Leaflet + Google Places, 26 KL markers, geolocation, distance sort
- BottomNav: added clock icon for prayer
- Prisma: schema updates for DhikrSession, DhikrDay, DailyStreak, XpTransaction
- Geo utility module
- Weighted Traefik routing: Contabo 99% / Synology 1% cold standby
This commit is contained in:
root
2026-06-18 14:51:07 +02:00
parent ed34b186f9
commit 28be776c84
13 changed files with 2822 additions and 104 deletions
+31
View File
@@ -52,6 +52,8 @@ model User {
xpTransactions XpTransaction[]
achievements Achievement[]
userLevel UserLevel?
dhikrSessions DhikrSession[]
dhikrDays DhikrDay[]
}
model DailyStreak {
@@ -284,6 +286,35 @@ model HalalPlaceCache {
expiresAt DateTime
}
model DhikrSession {
id String @id @default(cuid())
userId String
user User @relation(fields: [userId], references: [id])
type String // 'subhanallah' | 'alhamdulillah' | 'allahuakbar' | 'custom'
count Int @default(0)
target Int @default(33)
completed Boolean @default(true)
createdAt DateTime @default(now())
@@index([userId, createdAt])
}
model DhikrDay {
userId String
user User @relation(fields: [userId], references: [id])
date String // YYYY-MM-DD
subhanallah Int @default(0)
alhamdulillah Int @default(0)
allahuakbar Int @default(0)
custom Int @default(0)
totalCount Int @default(0)
sessionCount Int @default(0)
updatedAt DateTime @updatedAt
@@id([userId, date])
@@index([userId])
}
// Add Relations to User model
/// NOTE: The Notification and Referral relations are declared on the models above.
/// User now implicitly has: notifications Notification[], referredReferrals Referral[] (via "Referrer"), referrerReferral Referral? (via "Referred")