EventTeamInvitationRepository
in package
EventTeamInvitationRepository - Team Invitation Data Access
Manages invitation data in the EVENT_TEAM_INVITATIONS table. Handles invitation creation, validation, and status management.
Features:
- Create invitations with unique validation tokens
- Validate invitations via token
- Check invitation status
- Get all invitations for a team
Tags
Table of Contents
Properties
- $pdo : PDO
- PDO database connection instance
Methods
- __construct() : void
- Constructor - Initialize database connection
- areAllInvitationsConfirmed() : bool
- Check if all invitations for a team are confirmed
- countPendingInvitations() : int
- Count pending invitations for a team
- createInvitation() : string|null
- Create a new invitation for a team member
- deleteInvitation() : bool
- Delete an invitation
- findById() : array<string, mixed>|null
- Find an invitation by ID
- findByToken() : array<string, mixed>|null
- Find an invitation by its validation token
- getConfirmedMembers() : array<int, array<string, mixed>>
- Get all confirmed members of a team with their details
- getInvitationsByTeam() : array<int, array<string, mixed>>
- Get all invitations for a team
- getUserIdByEmail() : int|null
- Get user ID by email from USERS table
- isEmailInvited() : bool
- Check if an email is already invited to a team
- updateValidationStatus() : bool
- Update invitation validation status
Properties
$pdo
PDO database connection instance
private
PDO
$pdo
Methods
__construct()
Constructor - Initialize database connection
public
__construct() : void
Retrieves the database connection from the Database singleton.
areAllInvitationsConfirmed()
Check if all invitations for a team are confirmed
public
areAllInvitationsConfirmed(int $teamId) : bool
Parameters
- $teamId : int
-
The team identifier
Return values
bool —True if all members confirmed
countPendingInvitations()
Count pending invitations for a team
public
countPendingInvitations(int $teamId) : int
Parameters
- $teamId : int
-
The team identifier
Return values
int —Number of pending invitations
createInvitation()
Create a new invitation for a team member
public
createInvitation(int $teamId, string $email[, int|null $userId = null ]) : string|null
Parameters
- $teamId : int
-
The team identifier
- $email : string
-
The invitee's email address
- $userId : int|null = null
-
The user ID if already registered on the platform
Return values
string|null —The validation token or null on failure
deleteInvitation()
Delete an invitation
public
deleteInvitation(int $invitationId) : bool
Parameters
- $invitationId : int
-
The invitation identifier
Return values
bool —True if deletion successful
findById()
Find an invitation by ID
public
findById(int $invitationId) : array<string, mixed>|null
Parameters
- $invitationId : int
-
The invitation identifier
Return values
array<string, mixed>|null —Invitation data or null if not found
findByToken()
Find an invitation by its validation token
public
findByToken(string $token) : array<string, mixed>|null
Parameters
- $token : string
-
The validation token
Return values
array<string, mixed>|null —Invitation data or null if not found
getConfirmedMembers()
Get all confirmed members of a team with their details
public
getConfirmedMembers(int $teamId) : array<int, array<string, mixed>>
Parameters
- $teamId : int
-
The team identifier
Return values
array<int, array<string, mixed>> —List of confirmed members
getInvitationsByTeam()
Get all invitations for a team
public
getInvitationsByTeam(int $teamId) : array<int, array<string, mixed>>
Parameters
- $teamId : int
-
The team identifier
Return values
array<int, array<string, mixed>> —List of invitations
getUserIdByEmail()
Get user ID by email from USERS table
public
getUserIdByEmail(string $email) : int|null
Parameters
- $email : string
-
The email to search
Return values
int|null —User ID or null if not found
isEmailInvited()
Check if an email is already invited to a team
public
isEmailInvited(int $teamId, string $email) : bool
Parameters
- $teamId : int
-
The team identifier
- $email : string
-
The email to check
Return values
bool —True if already invited
updateValidationStatus()
Update invitation validation status
public
updateValidationStatus(int $invitationId, string $status[, int|null $userId = null ]) : bool
Parameters
- $invitationId : int
-
The invitation identifier
- $status : string
-
New status (pending, confirmed, declined)
- $userId : int|null = null
-
Optional user ID to link if user just registered
Return values
bool —True if update successful