/**
 * Domain Types: TeamRole, TeamMembershipStatus, TeamMembership, TeamJoinRequest
 *
 * These are pure domain data shapes (no behavior) used across repositories
 * and application DTOs. They are not entities or value objects.
 */

export type TeamRole = 'owner' | 'manager' | 'driver';
export type TeamMembershipStatus = 'active' | 'pending' | 'none';

export interface TeamMembership {
  teamId: string;
  driverId: string;
  role: TeamRole;
  status: TeamMembershipStatus;
  joinedAt: Date;
}

export interface TeamJoinRequest {
  id: string;
  teamId: string;
  driverId: string;
  requestedAt: Date;
  message?: string;
}