Add sports-match type, device tracking, profile visits, and share refactor

- New SportsMatch model/controller and sports UI components/modal
- Move share-modal to a reusable x-share-modal/x-share-button component
- Add VideoSharedWithUser notification and share-to-members flow
- Device/user-agent tracking on views, downloads, share accesses
- ProfileVisit model + migration; subscription source tracking
- Email thumbnail support; remove stale TODO files
This commit is contained in:
ghassan committed 2026-05-29 01:50:28 +03:00
1 parent 6aae6f86b6
commit 73527f3781
61 files changed
+4014 -636

No files matched your search

+28
View File
@@ -2,6 +2,34 @@
@section('title', $playlist->name . ' | ' . config('app.name'))
@push('head')
@php
$plDesc = trim($playlist->description ?? '');
if ($plDesc === '') {
$plDesc = $playlist->video_count . ' videos' . ($playlist->user ? ' • by ' . $playlist->user->name : '');
}
$plShareUrl = route('playlists.showByToken', $playlist->share_token);
// Use the dedicated OG endpoint so previews always get a 1200x630 JPG under the
// size/format limits of WhatsApp/Telegram/Discord/etc.
$plOgImage = route('playlists.ogImage', $playlist);
@endphp
<meta property="og:title" content="{{ $playlist->name }}">
<meta property="og:description" content="{{ Str::limit(strip_tags($plDesc), 200) }}">
<meta property="og:image" content="{{ $plOgImage }}">
<meta property="og:image:secure_url" content="{{ $plOgImage }}">
<meta property="og:image:type" content="image/jpeg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="{{ $playlist->name }}">
<meta property="og:url" content="{{ $plShareUrl }}">
<meta property="og:type" content="music.playlist">
<meta property="og:site_name" content="{{ config('app.name') }}">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ $playlist->name }}">
<meta name="twitter:description" content="{{ Str::limit(strip_tags($plDesc), 200) }}">
<meta name="twitter:image" content="{{ $plOgImage }}">
@endpush
@section('extra_styles')
<style>
/* ══════════════════════════════════════════════