diff --git a/dataconnect/connector/message/mutations.gql b/dataconnect/connector/message/mutations.gql new file mode 100644 index 00000000..ea03b0b2 --- /dev/null +++ b/dataconnect/connector/message/mutations.gql @@ -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) +} diff --git a/dataconnect/connector/message/queries.gql b/dataconnect/connector/message/queries.gql new file mode 100644 index 00000000..a999f19d --- /dev/null +++ b/dataconnect/connector/message/queries.gql @@ -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 + } +} diff --git a/dataconnect/schema/message.gql b/dataconnect/schema/message.gql new file mode 100644 index 00000000..bbdd322c --- /dev/null +++ b/dataconnect/schema/message.gql @@ -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") +}