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") +}