"""Both sporting squads consist of the same user-owned Player entities."""
from clubs.models import ClubSquadMembership


def roster_ids(club_id, *, lock=False):
    from academy.models import YouthSquadMembership
    senior = ClubSquadMembership.objects.filter(club_id=club_id)
    youth = YouthSquadMembership.objects.filter(youth_team__academy__club_id=club_id,
        youth_team__status="ACTIVE",youth_team__academy__status="ACTIVE",source_contract__status="ACTIVE")
    if lock:
        senior = senior.select_for_update(of=("self",))
        youth = youth.select_for_update(of=("self",))
    return set(senior.values_list("player_id",flat=True)) | set(youth.values_list("player_id",flat=True))
