Files
MatchLiveTv/backend/app/services/teams/staff_assignment.rb
eminuxandCursor db8b14ba4e Snellisci l'invito a trasmettere e invia l'email automatica.
Il form invito è sulla pagina squadra, genera il link e manda la mail; in caso di errore SMTP resta la copia manuale.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-15 20:02:25 +02:00

28 lines
766 B
Ruby

module Teams
class StaffAssignment
def self.call(team:, user:, staff_kind: "transmission", membership: nil)
new(team: team, user: user, staff_kind: staff_kind, membership: membership).call
end
def initialize(team:, user:, staff_kind: "transmission", membership: nil)
@team = team
@user = user
@staff_kind = "transmission"
@membership = membership
end
def call
StaffEmailValidator.assert_available!(
team: @team, email: @user.email, except_user: @user
)
ut = @membership || @user.user_teams.find_by!(team: @team)
return ut if ut.staff_kind == "transmission"
Entitlements.new(@team).assert_can_invite!
ut.update!(staff_kind: "transmission")
ut
end
end
end