From 89e4109a88dcb0c985e4aaf5c8ca60a6e3f93b52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Salazar?= <73718835+joshrs23@users.noreply.github.com> Date: Wed, 26 Nov 2025 12:33:26 -0500 Subject: [PATCH] new teamMemberInvite entity --- .../connector/teamMemberInvite/mutations.gql | 36 ++++++++++++++++ .../connector/teamMemberInvite/queries.gql | 41 +++++++++++++++++++ dataconnect/schema/teamMemberInvite.gql | 17 ++++++++ 3 files changed, 94 insertions(+) create mode 100644 dataconnect/connector/teamMemberInvite/mutations.gql create mode 100644 dataconnect/connector/teamMemberInvite/queries.gql create mode 100644 dataconnect/schema/teamMemberInvite.gql diff --git a/dataconnect/connector/teamMemberInvite/mutations.gql b/dataconnect/connector/teamMemberInvite/mutations.gql new file mode 100644 index 00000000..54929422 --- /dev/null +++ b/dataconnect/connector/teamMemberInvite/mutations.gql @@ -0,0 +1,36 @@ +mutation CreateTeamMemberInvite( + $teamId: UUID!, + $email: String!, + $inviteStatus: TeamMemberInviteStatus! +) @auth(level: USER) { + teamMemberInvite_insert( + data: { + teamId: $teamId + email: $email + inviteStatus: $inviteStatus + # inviteCode se genera por default con uuidV4() + } + ) +} + +mutation UpdateTeamMemberInvite( + $id: UUID!, + $teamId: UUID, + $email: String, + $inviteStatus: TeamMemberInviteStatus +) @auth(level: USER) { + teamMemberInvite_update( + id: $id, + data: { + teamId: $teamId + email: $email + inviteStatus: $inviteStatus + } + ) +} + +mutation DeleteTeamMemberInvite( + $id: UUID! +) @auth(level: USER) { + teamMemberInvite_delete(id: $id) +} diff --git a/dataconnect/connector/teamMemberInvite/queries.gql b/dataconnect/connector/teamMemberInvite/queries.gql new file mode 100644 index 00000000..6314b8fd --- /dev/null +++ b/dataconnect/connector/teamMemberInvite/queries.gql @@ -0,0 +1,41 @@ +query listTeamMemberInvite @auth(level: USER) { + teamMemberInvites { + id + teamId + inviteCode + email + inviteStatus + } +} + +query getTeamMemberInviteById( + $id: UUID! +) @auth(level: USER) { + teamMemberInvite(id: $id) { + id + teamId + inviteCode + email + inviteStatus + } +} + +query filterTeamMemberInvite( + $teamId: UUID, + $email: String, + $inviteStatus: TeamMemberInviteStatus +) @auth(level: USER) { + teamMemberInvites( + where: { + teamId: { eq: $teamId } + email: { eq: $email } + inviteStatus: { eq: $inviteStatus } + } + ) { + id + teamId + inviteCode + email + inviteStatus + } +} diff --git a/dataconnect/schema/teamMemberInvite.gql b/dataconnect/schema/teamMemberInvite.gql new file mode 100644 index 00000000..afdee310 --- /dev/null +++ b/dataconnect/schema/teamMemberInvite.gql @@ -0,0 +1,17 @@ +enum TeamMemberInviteStatus { + PENDING + ACCEPTED + EXPIRED + CANCELLED +} + +type TeamMemberInvite @table(name: "team_member_invites") { + id: UUID! @default(expr: "uuidV4()") + teamId: UUID! + inviteCode: String! @default(expr: "uuidV4()") + email: String! + inviteStatus: TeamMemberInviteStatus! + createdDate: Timestamp @default(expr: "request.time") + updatedDate: Timestamp @default(expr: "request.time") + createdBy: String @default(expr: "auth.uid") +}