export type NotificationEvent =
  | 'player_active_update'
  | 'player_team_role_update'
  | 'player_creation'
  | 'public_access_enabled'
  | 'public_access_rotated'
  | 'user_invite_link_create';

export interface NotificationPayload {
  playerId?: number;
  playerName?: string;
  active?: boolean;
  teamRoleId?: number;
  teamName?: string;
}

export interface NotificationItem {
  id: number;
  event: NotificationEvent;
  actorUserId: number;
  payload: NotificationPayload;
  read: boolean;
  createdAt: string;
}

export interface NotificationQuery {
  page: number;
  limit: number;
}

export interface NotificationPage {
  data: NotificationItem[];
  page: number;
  limit: number;
  total: number;
  hasNextPage: boolean;
}
