EventTeamRepository
in package
EventTeamRepository - Event Team Data Access
Manages team data in the EVENT_TEAMS table for group registrations. Handles team creation, status updates, and team retrieval.
Features:
- Create new teams for group events
- Update team status (pending, confirmed, cancelled)
- Get teams by event or by creator
- Count confirmed teams for an event
Tags
Table of Contents
Properties
- $pdo : PDO
- PDO database connection instance
Methods
- __construct() : void
- Constructor - Initialize database connection
- countConfirmedTeams() : int
- Count confirmed teams for an event
- createTeam() : int|null
- Create a new team for a group event
- deleteTeam() : bool
- Delete a team (also cascades to invitations due to FK)
- deleteTeamsByEvent() : int
- Delete all teams for an event
- findById() : array<string, mixed>|null
- Find a team by its ID
- findByIdWithCreator() : array<string, mixed>|null
- Find a team by ID with creator info and event name
- getTeamsByEvent() : array<int, array<string, mixed>>
- Get all teams for an event
- getUserTeamsForEvent() : array<int, array<string, mixed>>
- Get teams created by a specific user for an event
- isUserInAnyTeam() : bool
- Check if a user is already part of any team for an event
- updateStatus() : bool
- Update team status
- getNextTeamNumber() : int
- Get the next team number for an event
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.
countConfirmedTeams()
Count confirmed teams for an event
public
countConfirmedTeams(int $eventId) : int
Parameters
- $eventId : int
-
The event identifier
Return values
int —Number of confirmed teams
createTeam()
Create a new team for a group event
public
createTeam(int $eventId, int $creatorUserId) : int|null
Parameters
- $eventId : int
-
The event identifier
- $creatorUserId : int
-
The user who creates the team
Return values
int|null —The created team ID or null on failure
deleteTeam()
Delete a team (also cascades to invitations due to FK)
public
deleteTeam(int $teamId) : bool
Parameters
- $teamId : int
-
The team identifier
Return values
bool —True if deletion successful
deleteTeamsByEvent()
Delete all teams for an event
public
deleteTeamsByEvent(int $eventId) : int
Used when event type or team size changes to clear all existing teams. Cascades to delete team invitations via foreign key.
Parameters
- $eventId : int
-
The event identifier
Return values
int —Number of teams deleted
findById()
Find a team by its ID
public
findById(int $teamId) : array<string, mixed>|null
Parameters
- $teamId : int
-
The team identifier
Return values
array<string, mixed>|null —Team data or null if not found
findByIdWithCreator()
Find a team by ID with creator info and event name
public
findByIdWithCreator(int $teamId) : array<string, mixed>|null
Returns team data along with creator's name, email, and event name for sending notification emails.
Parameters
- $teamId : int
-
The team identifier
Return values
array<string, mixed>|null —Team data with creator info or null if not found
getTeamsByEvent()
Get all teams for an event
public
getTeamsByEvent(int $eventId[, string|null $status = null ]) : array<int, array<string, mixed>>
Parameters
- $eventId : int
-
The event identifier
- $status : string|null = null
-
Filter by status (null for all)
Return values
array<int, array<string, mixed>> —List of teams
getUserTeamsForEvent()
Get teams created by a specific user for an event
public
getUserTeamsForEvent(int $eventId, int $userId) : array<int, array<string, mixed>>
Parameters
- $eventId : int
-
The event identifier
- $userId : int
-
The user identifier
Return values
array<int, array<string, mixed>> —List of teams
isUserInAnyTeam()
Check if a user is already part of any team for an event
public
isUserInAnyTeam(int $eventId, int $userId) : bool
Parameters
- $eventId : int
-
The event identifier
- $userId : int
-
The user identifier
Return values
bool —True if user is already in a team
updateStatus()
Update team status
public
updateStatus(int $teamId, string $status) : bool
Parameters
- $teamId : int
-
The team identifier
- $status : string
-
New status (pending, confirmed, cancelled)
Return values
bool —True if update successful
getNextTeamNumber()
Get the next team number for an event
private
getNextTeamNumber(int $eventId) : int
Parameters
- $eventId : int
-
The event identifier
Return values
int —The next team number