Limita una diretta attiva per account e valorizza la copertina Premium Full.

Blocca la seconda diretta sullo stesso utente, registra gli abusi in admin e presenta la copertina come grafica caricata dalla società, con demo Team MLTV.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-01 12:52:26 +02:00
co-authored by Cursor
parent 356aa28fad
commit d52434fb2e
62 changed files with 1509 additions and 109 deletions
+36 -2
View File
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.2].define(version: 2026_08_28_180000) do
ActiveRecord::Schema[7.2].define(version: 2026_08_31_193000) do
# These are extensions that must be enabled in order to support this database
enable_extension "pgcrypto"
enable_extension "plpgsql"
@@ -383,6 +383,34 @@ ActiveRecord::Schema[7.2].define(version: 2026_08_28_180000) do
t.index ["stream_session_id"], name: "index_score_states_on_stream_session_id", unique: true
end
create_table "stream_concurrency_violations", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.uuid "user_id"
t.uuid "occupying_session_id"
t.uuid "attempted_session_id"
t.uuid "occupying_club_id"
t.uuid "attempted_club_id"
t.string "attempt_action", default: "start", null: false
t.string "user_email", null: false
t.string "user_name"
t.string "occupying_club_name"
t.string "attempted_club_name"
t.string "occupying_match_label", null: false
t.string "attempted_match_label", null: false
t.string "occupying_status"
t.string "occupying_device"
t.string "attempted_device"
t.boolean "devices_differ", default: false, null: false
t.jsonb "metadata", default: {}, null: false
t.datetime "created_at", null: false
t.index ["attempted_club_id"], name: "index_stream_concurrency_violations_on_attempted_club_id"
t.index ["attempted_session_id"], name: "index_stream_concurrency_violations_on_attempted_session_id"
t.index ["created_at"], name: "index_stream_concurrency_violations_on_created_at"
t.index ["devices_differ"], name: "index_stream_concurrency_violations_on_devices_differ"
t.index ["occupying_club_id"], name: "index_stream_concurrency_violations_on_occupying_club_id"
t.index ["occupying_session_id"], name: "index_stream_concurrency_violations_on_occupying_session_id"
t.index ["user_id"], name: "index_stream_concurrency_violations_on_user_id"
end
create_table "stream_events", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.uuid "stream_session_id", null: false
t.string "event_type", null: false
@@ -440,9 +468,9 @@ ActiveRecord::Schema[7.2].define(version: 2026_08_28_180000) do
t.datetime "updated_at", null: false
t.string "regia_token_digest"
t.datetime "regia_token_expires_at"
t.boolean "audio_muted", default: false, null: false
t.uuid "stream_node_id"
t.string "min_quality_preset", default: "auto", null: false
t.boolean "audio_muted", default: false, null: false
t.string "client_os"
t.string "app_version"
t.string "app_build"
@@ -458,6 +486,7 @@ ActiveRecord::Schema[7.2].define(version: 2026_08_28_180000) do
t.index ["regia_token_digest"], name: "index_stream_sessions_on_regia_token_digest", unique: true
t.index ["status"], name: "index_stream_sessions_on_status"
t.index ["stream_node_id"], name: "index_stream_sessions_on_stream_node_id"
t.index ["user_id", "status"], name: "index_stream_sessions_on_user_id_and_status"
t.index ["user_id"], name: "index_stream_sessions_on_user_id"
end
@@ -591,6 +620,11 @@ ActiveRecord::Schema[7.2].define(version: 2026_08_28_180000) do
add_foreign_key "recordings", "stream_sessions"
add_foreign_key "recordings", "teams"
add_foreign_key "score_states", "stream_sessions"
add_foreign_key "stream_concurrency_violations", "clubs", column: "attempted_club_id", on_delete: :nullify
add_foreign_key "stream_concurrency_violations", "clubs", column: "occupying_club_id", on_delete: :nullify
add_foreign_key "stream_concurrency_violations", "stream_sessions", column: "attempted_session_id", on_delete: :nullify
add_foreign_key "stream_concurrency_violations", "stream_sessions", column: "occupying_session_id", on_delete: :nullify
add_foreign_key "stream_concurrency_violations", "users", on_delete: :nullify
add_foreign_key "stream_events", "stream_sessions"
add_foreign_key "stream_sessions", "matches"
add_foreign_key "stream_sessions", "stream_nodes"