Files
winded/lib/features/media/infrastructure/media_repository.dart
T
philip b239ae3e5f 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>
2026-05-14 20:13:57 -07:00

74 lines
2.6 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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),
),
];
}