Merge branch 'dev' into 96-base44-frontend-update-from-export

This commit is contained in:
José Salazar
2025-11-26 14:36:37 -05:00
9 changed files with 304 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
mutation CreateActivityLog(
$title: String!,
$description: String!,
$activityType: ActivityType!,
$userId: UUID!,
$isRead: Boolean
) @auth(level: USER) {
activityLog_insert(
data: {
title: $title
description: $description
activityType: $activityType
userId: $userId
isRead: $isRead
}
)
}
mutation UpdateActivityLog(
$id: UUID!,
$title: String,
$description: String,
$activityType: ActivityType,
$userId: UUID,
$isRead: Boolean
) @auth(level: USER) {
activityLog_update(
id: $id,
data: {
title: $title
description: $description
activityType: $activityType
userId: $userId
isRead: $isRead
}
)
}
mutation DeleteActivityLog(
$id: UUID!
) @auth(level: USER) {
activityLog_delete(id: $id)
}

View File

@@ -0,0 +1,44 @@
query listActivityLog @auth(level: USER) {
activityLogs {
id
title
description
activityType
userId
isRead
}
}
query getActivityLogById(
$id: UUID!
) @auth(level: USER) {
activityLog(id: $id) {
id
title
description
activityType
userId
isRead
}
}
query filterActivityLog(
$userId: UUID,
$activityType: ActivityType,
$isRead: Boolean
) @auth(level: USER) {
activityLogs(
where: {
userId: { eq: $userId }
activityType: { eq: $activityType }
isRead: { eq: $isRead }
}
) {
id
title
description
activityType
userId
isRead
}
}

View File

@@ -0,0 +1,39 @@
mutation CreateConversation(
$participants: String!,
$conversationType: ConversationType!,
$relatedTo: UUID!,
$status: ConversationStatus
) @auth(level: USER) {
conversation_insert(
data: {
participants: $participants
conversationType: $conversationType
relatedTo: $relatedTo
status: $status
}
)
}
mutation UpdateConversation(
$id: UUID!,
$participants: String,
$conversationType: ConversationType,
$relatedTo: UUID!,
$status: ConversationStatus
) @auth(level: USER) {
conversation_update(
id: $id,
data: {
participants: $participants
conversationType: $conversationType
relatedTo: $relatedTo
status: $status
}
)
}
mutation DeleteConversation(
$id: UUID!
) @auth(level: USER) {
conversation_delete(id: $id)
}

View File

@@ -0,0 +1,43 @@
# dataconnect/connector/conversation/queries.gql
query listConversation @auth(level: USER) {
conversations {
id
participants
conversationType
relatedTo
status
}
}
query getConversationById(
$id: UUID!
) @auth(level: USER) {
conversation(id: $id) {
id
participants
conversationType
relatedTo
status
}
}
query filterConversation(
$conversationType: ConversationType,
$status: ConversationStatus,
$relatedTo: UUID!
) @auth(level: USER) {
conversations(
where: {
conversationType: { eq: $conversationType }
status: { eq: $status }
relatedTo: { eq: $relatedTo }
}
) {
id
participants
conversationType
relatedTo
status
}
}

View File

@@ -0,0 +1,39 @@
mutation CreateMessage(
$conversationId: UUID!,
$senderName: String!,
$content: String!,
$readBy: String
) @auth(level: USER) {
message_insert(
data: {
conversationId: $conversationId
senderName: $senderName
content: $content
readBy: $readBy
}
)
}
mutation UpdateMessage(
$id: UUID!,
$conversationId: UUID,
$senderName: String,
$content: String,
$readBy: String
) @auth(level: USER) {
message_update(
id: $id,
data: {
conversationId: $conversationId
senderName: $senderName
content: $content
readBy: $readBy
}
)
}
mutation DeleteMessage(
$id: UUID!
) @auth(level: USER) {
message_delete(id: $id)
}

View File

@@ -0,0 +1,39 @@
query listMessage @auth(level: USER) {
messages {
id
conversationId
senderName
content
readBy
}
}
query getMessageById(
$id: UUID!
) @auth(level: USER) {
message(id: $id) {
id
conversationId
senderName
content
readBy
}
}
query filterMessage(
$conversationId: UUID,
$senderName: String
) @auth(level: USER) {
messages(
where: {
conversationId: { eq: $conversationId }
senderName: { eq: $senderName }
}
) {
id
conversationId
senderName
content
readBy
}
}

View File

@@ -0,0 +1,21 @@
enum ActivityType {
EVENT_CREATED
EVENT_UPDATED
STAFF_ASSIGNED
INVOICE_PAID
INVOICE_CREATED
VENDOR_APPROVED
MESSAGE_RECEIVED
}
type ActivityLog @table(name: "activity_logs") {
id: UUID! @default(expr: "uuidV4()")
title: String!
description: String!
activityType: ActivityType!
userId: UUID! # user_id (FK lógica a User.id)
isRead: Boolean @default(expr: "false")
createdDate: Timestamp @default(expr: "request.time")
updatedDate: Timestamp @default(expr: "request.time")
createdBy: String @default(expr: "auth.uid")
}

View File

@@ -0,0 +1,26 @@
enum ConversationType {
CLIENT_VENDOR
STAFF_CLIENT
STAFF_ADMIN
VENDOR_ADMIN
CLIENT_ADMIN
GROUP_STAFF
GROUP_EVENT_STAFF
}
enum ConversationStatus {
ACTIVE
ARCHIVED
CLOSED
}
type Conversation @table(name: "conversations") {
id: UUID! @default(expr: "uuidV4()")
participants: String! # participants (jsonb -> String, required array of strings)
conversationType: ConversationType!
relatedTo: UUID! # related_to (generic FK as string)
status: ConversationStatus
createdDate: Timestamp @default(expr: "request.time")
updatedDate: Timestamp @default(expr: "request.time")
createdBy: String @default(expr: "auth.uid")
}

View File

@@ -0,0 +1,10 @@
type Message @table(name: "messages") {
id: UUID! @default(expr: "uuidV4()")
conversationId: UUID! # conversation_id (FK lógica a Conversation.id)
senderName: String!
content: String!
readBy: String # read_by (jsonb -> String, array de user IDs)
createdDate: Timestamp @default(expr: "request.time")
updatedDate: Timestamp @default(expr: "request.time")
createdBy: String @default(expr: "auth.uid")
}