Watches an email inbox via IMAP IDLE for incoming scanned cards, extracts PDF/image attachments, and feeds them through the existing OCR pipeline. Configurable via the Settings page with test connection support. Made-with: Cursor
98 lines
2.6 KiB
Text
98 lines
2.6 KiB
Text
generator client {
|
|
provider = "prisma-client"
|
|
output = "../src/generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
}
|
|
|
|
model ResponseCard {
|
|
id String @id @default(cuid())
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Personal Info (Response Card side)
|
|
name String?
|
|
gender String?
|
|
dateOfBirth String?
|
|
maritalStatus String?
|
|
maritalStatusOther String?
|
|
visitType String?
|
|
cellPhone String?
|
|
homePhone String?
|
|
email String?
|
|
address String?
|
|
aptNumber String?
|
|
city String?
|
|
state String?
|
|
zip String?
|
|
prayerRequests String?
|
|
prayerForTeam Boolean @default(false)
|
|
prayerConfidential Boolean @default(false)
|
|
|
|
// Survey Info (Easter Survey side)
|
|
messageTopics Json?
|
|
messageTopicsOther String?
|
|
nextStep Json?
|
|
attendanceDuration String?
|
|
campusPreference Json?
|
|
campusPreferenceOther String?
|
|
howHeard Json?
|
|
howHeardOther String?
|
|
serviceAttended String?
|
|
|
|
// Meta
|
|
sourceFile String?
|
|
frontImagePath String?
|
|
backImagePath String?
|
|
ocrStatus String @default("pending")
|
|
reviewStatus String @default("unreviewed")
|
|
ocrConfidence Float?
|
|
ocrError String?
|
|
rawOcrResponse Json?
|
|
|
|
@@index([ocrStatus])
|
|
@@index([reviewStatus])
|
|
@@index([name])
|
|
@@index([createdAt])
|
|
}
|
|
|
|
model ProcessingJob {
|
|
id String @id @default(cuid())
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
fileName String
|
|
filePath String
|
|
status String @default("queued")
|
|
totalPages Int @default(0)
|
|
processed Int @default(0)
|
|
error String?
|
|
cardIds Json?
|
|
|
|
@@index([status])
|
|
}
|
|
|
|
model AppSettings {
|
|
id String @id @default("singleton")
|
|
ollamaUrl String @default("http://192.168.68.108:11434")
|
|
model String @default("llava:7b")
|
|
watchDir String @default("")
|
|
watching Boolean @default(false)
|
|
|
|
sourceRetentionDays Int @default(30)
|
|
imageRetentionDays Int @default(180)
|
|
|
|
aiProvider String @default("gateway")
|
|
aiModel String @default("")
|
|
|
|
emailImapHost String @default("imap.dreamhost.com")
|
|
emailImapPort Int @default(993)
|
|
emailImapUser String @default("echo-ocr@stillwell.cloud")
|
|
emailImapPass String @default("")
|
|
emailImapTls Boolean @default(true)
|
|
emailFolder String @default("INBOX")
|
|
emailWatching Boolean @default(false)
|
|
emailProcessed String @default("mark_read")
|
|
emailProcessedFolder String @default("Processed")
|
|
}
|