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,36 @@
|
||||
/// 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)';
|
||||
}
|
||||
Reference in New Issue
Block a user