b239ae3e5f
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>
37 lines
1.1 KiB
Dart
37 lines
1.1 KiB
Dart
/// Social platforms surfaced on the Media screen. The enum values are stable
|
|
/// identifiers used for icon mapping and snackbar copy.
|
|
enum SocialPlatform { instagram, youtube, twitter, tiktok }
|
|
|
|
/// Immutable domain model for a single social media link card on the Media
|
|
/// screen. Pairs a [platform] with the community's [handle], a deep [url],
|
|
/// and a friendly [displayName].
|
|
class MediaLink {
|
|
const MediaLink({
|
|
required this.platform,
|
|
required this.handle,
|
|
required this.url,
|
|
required this.displayName,
|
|
});
|
|
|
|
final SocialPlatform platform;
|
|
final String handle;
|
|
final String url;
|
|
final String displayName;
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
if (identical(this, other)) return true;
|
|
if (other is! MediaLink) return false;
|
|
return other.platform == platform &&
|
|
other.handle == handle &&
|
|
other.url == url &&
|
|
other.displayName == displayName;
|
|
}
|
|
|
|
@override
|
|
int get hashCode => Object.hash(platform, handle, url, displayName);
|
|
|
|
@override
|
|
String toString() => 'MediaLink($platform, $handle)';
|
|
}
|