Initial commit: Flutter app + PHP/MySQL backend on Hostinger
Replaces Firebase with a self-hosted PHP/MySQL API served from winded.prymsolutions.com. Includes full backend (schema, auth, events, teams, brackets, suggestions, stats, media, file upload) and updated Flutter repositories and domain models. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
import '../domain/highlight.dart';
|
||||
import '../domain/media_link.dart';
|
||||
|
||||
/// Repository for the Media screen content.
|
||||
///
|
||||
/// All content is static for the MVP — social handles and highlight metadata
|
||||
/// rarely change and don't justify a Firestore round-trip. Future Phase 2
|
||||
/// work can swap these getters for a Firestore-backed source if needed
|
||||
/// (e.g. an admin-editable `media_links` collection).
|
||||
class MediaRepository {
|
||||
const MediaRepository();
|
||||
|
||||
/// Social media accounts featured at the top of the Media screen.
|
||||
static const List<MediaLink> socialLinks = <MediaLink>[
|
||||
MediaLink(
|
||||
platform: SocialPlatform.instagram,
|
||||
handle: '@windedfc_official',
|
||||
url: 'https://instagram.com/windedfc_official',
|
||||
displayName: 'Instagram',
|
||||
),
|
||||
MediaLink(
|
||||
platform: SocialPlatform.youtube,
|
||||
handle: 'Winded FC',
|
||||
url: 'https://youtube.com/@windedfc',
|
||||
displayName: 'YouTube',
|
||||
),
|
||||
MediaLink(
|
||||
platform: SocialPlatform.twitter,
|
||||
handle: '@windedfc',
|
||||
url: 'https://twitter.com/windedfc',
|
||||
displayName: 'Twitter / X',
|
||||
),
|
||||
MediaLink(
|
||||
platform: SocialPlatform.tiktok,
|
||||
handle: '@windedfc',
|
||||
url: 'https://tiktok.com/@windedfc',
|
||||
displayName: 'TikTok',
|
||||
),
|
||||
];
|
||||
|
||||
/// Highlight reels surfaced in the Media screen feed. Ordered newest first
|
||||
/// to match how the UI presents them.
|
||||
static final List<Highlight> highlights = <Highlight>[
|
||||
Highlight(
|
||||
id: 'highlight_summer_kickoff_final',
|
||||
title: 'Summer Kickoff 7v7 – Final Highlights',
|
||||
description:
|
||||
'Green Eagles vs. Red Lions went the distance — extra time, a '
|
||||
'goal-line clearance, and a winner from 30 yards. Catch every '
|
||||
'turning point from the championship match.',
|
||||
youtubeUrl: 'https://youtube.com/watch?v=winded_summer_final',
|
||||
publishedAt: DateTime(2026, 5, 10),
|
||||
),
|
||||
Highlight(
|
||||
id: 'highlight_best_goals_may_2026',
|
||||
title: 'Best Goals of the Month – May 2026',
|
||||
description:
|
||||
'Ten goals, one tape. Volleys, scorpion kicks, and a half-pitch '
|
||||
'lob — our community voted, and these are the May standouts.',
|
||||
youtubeUrl: 'https://youtube.com/watch?v=winded_may_goals',
|
||||
publishedAt: DateTime(2026, 5, 6),
|
||||
),
|
||||
Highlight(
|
||||
id: 'highlight_wednesday_pickup',
|
||||
title: 'Wednesday Night Pick-Up – Top Moments',
|
||||
description:
|
||||
'No standings, no pressure — just the best plays from this week\'s '
|
||||
'open run at Riverside Park. Bring cleats and friends next time.',
|
||||
youtubeUrl: 'https://youtube.com/watch?v=winded_wed_pickup',
|
||||
publishedAt: DateTime(2026, 4, 30),
|
||||
),
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user