Aggiunge modulo Replay, Garage dev e YouTube a livello società.

Pipeline registrazione/upload con storage S3, archivio web e app, proxy replay
per il browser, OAuth YouTube sulla pagina club (Premium Full) e footer legale.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-03 07:53:11 +02:00
parent a87cda156b
commit 1f273f849d
87 changed files with 2952 additions and 195 deletions

View File

@@ -0,0 +1,13 @@
<p>Ciao <%= @recipient.name %>,</p>
<p>Il replay <strong><%= @recording.title_or_default %></strong> scadrà tra circa <strong><%= @days_left %> giorni</strong> (<%= l @expires_at, format: :long %>).</p>
<p>Dopo la scadenza verrà eliminato automaticamente dallo storage secondo il piano della società.</p>
<p>
<a href="<%= @replay_url %>">Apri il replay</a>
·
<a href="<%= MatchLiveTv.app_public_url.chomp('/') %>/clubs/<%= @club.id %>/replays">Archivio Replay</a>
</p>
<p style="color:#666;font-size:12px">Match Live TV — <%= MatchLiveTv.privacy_controller_email %></p>

View File

@@ -0,0 +1,8 @@
Ciao <%= @recipient.name %>,
Il replay "<%= @recording.title_or_default %>" scade tra circa <%= @days_left %> giorni (<%= l @expires_at, format: :long %>).
Apri: <%= @replay_url %>
Archivio: <%= MatchLiveTv.app_public_url.chomp('/') %>/clubs/<%= @club.id %>/replays
Match Live TV

View File

@@ -0,0 +1,15 @@
<p>Ciao <%= @recipient.name %>,</p>
<p>Il replay della partita <strong><%= @recording.title_or_default %></strong> (<%= @club.name %>) è pronto e disponibile sulla piattaforma.</p>
<p>
<a href="<%= @replay_url %>">Guarda il replay</a>
</p>
<% if @expires_at %>
<p style="color:#666">Disponibile fino al <%= l @expires_at, format: :long %>.</p>
<% end %>
<p>Puoi gestire visibilità ed eliminazione dall<a href="<%= MatchLiveTv.app_public_url.chomp('/') %>/clubs/<%= @club.id %>/replays">archivio Replay</a> della società.</p>
<p style="color:#666;font-size:12px">Match Live TV — <%= MatchLiveTv.privacy_controller_email %></p>

View File

@@ -0,0 +1,12 @@
Ciao <%= @recipient.name %>,
Il replay "<%= @recording.title_or_default %>" (<%= @club.name %>) è pronto.
Guarda: <%= @replay_url %>
<% if @expires_at %>
Disponibile fino al <%= l @expires_at, format: :long %>.
<% end %>
Archivio: <%= MatchLiveTv.app_public_url.chomp('/') %>/clubs/<%= @club.id %>/replays
Match Live TV