feat: implement connection request management including schema, API endpoints, and business logic for users and agents.
This commit is contained in:
@@ -56,6 +56,12 @@ enum VerificationStatus {
|
||||
REJECTED // Admin rejected verification
|
||||
}
|
||||
|
||||
enum ConnectionStatus {
|
||||
PENDING
|
||||
ACCEPTED
|
||||
REJECTED
|
||||
}
|
||||
|
||||
|
||||
// ===========================================
|
||||
// USER - Authentication Only
|
||||
@@ -89,6 +95,9 @@ model User {
|
||||
// Auth Relations
|
||||
sessions Session[]
|
||||
|
||||
// Connection Requests
|
||||
connectionRequests ConnectionRequest[]
|
||||
|
||||
@@index([email])
|
||||
@@index([role])
|
||||
@@index([status])
|
||||
@@ -188,6 +197,7 @@ model AgentProfile {
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
agentType AgentType? @relation(fields: [agentTypeId], references: [id])
|
||||
fieldValues AgentProfileFieldValue[]
|
||||
connectionRequests ConnectionRequest[]
|
||||
|
||||
@@index([userId])
|
||||
@@index([agentTypeId])
|
||||
@@ -366,3 +376,30 @@ model Session {
|
||||
@@index([token])
|
||||
@@map("sessions")
|
||||
}
|
||||
|
||||
// ===========================================
|
||||
// CONNECTION REQUEST - User to Agent connections
|
||||
// ===========================================
|
||||
|
||||
model ConnectionRequest {
|
||||
id String @id @default(uuid())
|
||||
userId String // User sending the request
|
||||
agentProfileId String // Agent receiving the request
|
||||
status ConnectionStatus @default(PENDING)
|
||||
message String? @db.Text // Optional message from user
|
||||
|
||||
// Timestamps
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
respondedAt DateTime? // When agent responded
|
||||
|
||||
// Relations
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
agentProfile AgentProfile @relation(fields: [agentProfileId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([userId, agentProfileId]) // One request per user-agent pair
|
||||
@@index([agentProfileId, status])
|
||||
@@index([userId, status])
|
||||
@@index([status])
|
||||
@@map("connection_requests")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user