/// 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)'; }