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:
2026-05-14 20:13:57 -07:00
commit b239ae3e5f
208 changed files with 19187 additions and 0 deletions
@@ -0,0 +1,442 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'teams_notifier.dart';
// **************************************************************************
// RiverpodGenerator
// **************************************************************************
String _$teamByIdHash() => r'321ea04a62f6a3e9788f820c36d7d6bea6bc968f';
/// Copied from Dart SDK
class _SystemHash {
_SystemHash._();
static int combine(int hash, int value) {
// ignore: parameter_assignments
hash = 0x1fffffff & (hash + value);
// ignore: parameter_assignments
hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
return hash ^ (hash >> 6);
}
static int finish(int hash) {
// ignore: parameter_assignments
hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
// ignore: parameter_assignments
hash = hash ^ (hash >> 11);
return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
}
}
/// Resolves a single [Team] by id out of the teams stream. Returns null while
/// loading or if no team matches.
///
/// Copied from [teamById].
@ProviderFor(teamById)
const teamByIdProvider = TeamByIdFamily();
/// Resolves a single [Team] by id out of the teams stream. Returns null while
/// loading or if no team matches.
///
/// Copied from [teamById].
class TeamByIdFamily extends Family<Team?> {
/// Resolves a single [Team] by id out of the teams stream. Returns null while
/// loading or if no team matches.
///
/// Copied from [teamById].
const TeamByIdFamily();
/// Resolves a single [Team] by id out of the teams stream. Returns null while
/// loading or if no team matches.
///
/// Copied from [teamById].
TeamByIdProvider call(String id) {
return TeamByIdProvider(id);
}
@override
TeamByIdProvider getProviderOverride(covariant TeamByIdProvider provider) {
return call(provider.id);
}
static const Iterable<ProviderOrFamily>? _dependencies = null;
@override
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
@override
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
_allTransitiveDependencies;
@override
String? get name => r'teamByIdProvider';
}
/// Resolves a single [Team] by id out of the teams stream. Returns null while
/// loading or if no team matches.
///
/// Copied from [teamById].
class TeamByIdProvider extends AutoDisposeProvider<Team?> {
/// Resolves a single [Team] by id out of the teams stream. Returns null while
/// loading or if no team matches.
///
/// Copied from [teamById].
TeamByIdProvider(String id)
: this._internal(
(ref) => teamById(ref as TeamByIdRef, id),
from: teamByIdProvider,
name: r'teamByIdProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$teamByIdHash,
dependencies: TeamByIdFamily._dependencies,
allTransitiveDependencies: TeamByIdFamily._allTransitiveDependencies,
id: id,
);
TeamByIdProvider._internal(
super._createNotifier, {
required super.name,
required super.dependencies,
required super.allTransitiveDependencies,
required super.debugGetCreateSourceHash,
required super.from,
required this.id,
}) : super.internal();
final String id;
@override
Override overrideWith(Team? Function(TeamByIdRef provider) create) {
return ProviderOverride(
origin: this,
override: TeamByIdProvider._internal(
(ref) => create(ref as TeamByIdRef),
from: from,
name: null,
dependencies: null,
allTransitiveDependencies: null,
debugGetCreateSourceHash: null,
id: id,
),
);
}
@override
AutoDisposeProviderElement<Team?> createElement() {
return _TeamByIdProviderElement(this);
}
@override
bool operator ==(Object other) {
return other is TeamByIdProvider && other.id == id;
}
@override
int get hashCode {
var hash = _SystemHash.combine(0, runtimeType.hashCode);
hash = _SystemHash.combine(hash, id.hashCode);
return _SystemHash.finish(hash);
}
}
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin TeamByIdRef on AutoDisposeProviderRef<Team?> {
/// The parameter `id` of this provider.
String get id;
}
class _TeamByIdProviderElement extends AutoDisposeProviderElement<Team?>
with TeamByIdRef {
_TeamByIdProviderElement(super.provider);
@override
String get id => (origin as TeamByIdProvider).id;
}
String _$joinRequestsForTeamHash() =>
r'fd951881199d04c8ca5a7be49aef3bb3faccb76d';
/// Streams every join request for [teamId]. Used by the manager dashboard.
///
/// Copied from [joinRequestsForTeam].
@ProviderFor(joinRequestsForTeam)
const joinRequestsForTeamProvider = JoinRequestsForTeamFamily();
/// Streams every join request for [teamId]. Used by the manager dashboard.
///
/// Copied from [joinRequestsForTeam].
class JoinRequestsForTeamFamily extends Family<AsyncValue<List<JoinRequest>>> {
/// Streams every join request for [teamId]. Used by the manager dashboard.
///
/// Copied from [joinRequestsForTeam].
const JoinRequestsForTeamFamily();
/// Streams every join request for [teamId]. Used by the manager dashboard.
///
/// Copied from [joinRequestsForTeam].
JoinRequestsForTeamProvider call(String teamId) {
return JoinRequestsForTeamProvider(teamId);
}
@override
JoinRequestsForTeamProvider getProviderOverride(
covariant JoinRequestsForTeamProvider provider,
) {
return call(provider.teamId);
}
static const Iterable<ProviderOrFamily>? _dependencies = null;
@override
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
@override
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
_allTransitiveDependencies;
@override
String? get name => r'joinRequestsForTeamProvider';
}
/// Streams every join request for [teamId]. Used by the manager dashboard.
///
/// Copied from [joinRequestsForTeam].
class JoinRequestsForTeamProvider
extends AutoDisposeStreamProvider<List<JoinRequest>> {
/// Streams every join request for [teamId]. Used by the manager dashboard.
///
/// Copied from [joinRequestsForTeam].
JoinRequestsForTeamProvider(String teamId)
: this._internal(
(ref) => joinRequestsForTeam(ref as JoinRequestsForTeamRef, teamId),
from: joinRequestsForTeamProvider,
name: r'joinRequestsForTeamProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$joinRequestsForTeamHash,
dependencies: JoinRequestsForTeamFamily._dependencies,
allTransitiveDependencies:
JoinRequestsForTeamFamily._allTransitiveDependencies,
teamId: teamId,
);
JoinRequestsForTeamProvider._internal(
super._createNotifier, {
required super.name,
required super.dependencies,
required super.allTransitiveDependencies,
required super.debugGetCreateSourceHash,
required super.from,
required this.teamId,
}) : super.internal();
final String teamId;
@override
Override overrideWith(
Stream<List<JoinRequest>> Function(JoinRequestsForTeamRef provider) create,
) {
return ProviderOverride(
origin: this,
override: JoinRequestsForTeamProvider._internal(
(ref) => create(ref as JoinRequestsForTeamRef),
from: from,
name: null,
dependencies: null,
allTransitiveDependencies: null,
debugGetCreateSourceHash: null,
teamId: teamId,
),
);
}
@override
AutoDisposeStreamProviderElement<List<JoinRequest>> createElement() {
return _JoinRequestsForTeamProviderElement(this);
}
@override
bool operator ==(Object other) {
return other is JoinRequestsForTeamProvider && other.teamId == teamId;
}
@override
int get hashCode {
var hash = _SystemHash.combine(0, runtimeType.hashCode);
hash = _SystemHash.combine(hash, teamId.hashCode);
return _SystemHash.finish(hash);
}
}
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin JoinRequestsForTeamRef
on AutoDisposeStreamProviderRef<List<JoinRequest>> {
/// The parameter `teamId` of this provider.
String get teamId;
}
class _JoinRequestsForTeamProviderElement
extends AutoDisposeStreamProviderElement<List<JoinRequest>>
with JoinRequestsForTeamRef {
_JoinRequestsForTeamProviderElement(super.provider);
@override
String get teamId => (origin as JoinRequestsForTeamProvider).teamId;
}
String _$joinRequestsForPlayerHash() =>
r'47ea047439ef88b65daee31c4e108ed6a805adf6';
/// Streams every join request submitted by [playerId]. Used to decide
/// whether to show "Request pending" on a team detail page.
///
/// Copied from [joinRequestsForPlayer].
@ProviderFor(joinRequestsForPlayer)
const joinRequestsForPlayerProvider = JoinRequestsForPlayerFamily();
/// Streams every join request submitted by [playerId]. Used to decide
/// whether to show "Request pending" on a team detail page.
///
/// Copied from [joinRequestsForPlayer].
class JoinRequestsForPlayerFamily
extends Family<AsyncValue<List<JoinRequest>>> {
/// Streams every join request submitted by [playerId]. Used to decide
/// whether to show "Request pending" on a team detail page.
///
/// Copied from [joinRequestsForPlayer].
const JoinRequestsForPlayerFamily();
/// Streams every join request submitted by [playerId]. Used to decide
/// whether to show "Request pending" on a team detail page.
///
/// Copied from [joinRequestsForPlayer].
JoinRequestsForPlayerProvider call(String playerId) {
return JoinRequestsForPlayerProvider(playerId);
}
@override
JoinRequestsForPlayerProvider getProviderOverride(
covariant JoinRequestsForPlayerProvider provider,
) {
return call(provider.playerId);
}
static const Iterable<ProviderOrFamily>? _dependencies = null;
@override
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
@override
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
_allTransitiveDependencies;
@override
String? get name => r'joinRequestsForPlayerProvider';
}
/// Streams every join request submitted by [playerId]. Used to decide
/// whether to show "Request pending" on a team detail page.
///
/// Copied from [joinRequestsForPlayer].
class JoinRequestsForPlayerProvider
extends AutoDisposeStreamProvider<List<JoinRequest>> {
/// Streams every join request submitted by [playerId]. Used to decide
/// whether to show "Request pending" on a team detail page.
///
/// Copied from [joinRequestsForPlayer].
JoinRequestsForPlayerProvider(String playerId)
: this._internal(
(ref) =>
joinRequestsForPlayer(ref as JoinRequestsForPlayerRef, playerId),
from: joinRequestsForPlayerProvider,
name: r'joinRequestsForPlayerProvider',
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
? null
: _$joinRequestsForPlayerHash,
dependencies: JoinRequestsForPlayerFamily._dependencies,
allTransitiveDependencies:
JoinRequestsForPlayerFamily._allTransitiveDependencies,
playerId: playerId,
);
JoinRequestsForPlayerProvider._internal(
super._createNotifier, {
required super.name,
required super.dependencies,
required super.allTransitiveDependencies,
required super.debugGetCreateSourceHash,
required super.from,
required this.playerId,
}) : super.internal();
final String playerId;
@override
Override overrideWith(
Stream<List<JoinRequest>> Function(JoinRequestsForPlayerRef provider)
create,
) {
return ProviderOverride(
origin: this,
override: JoinRequestsForPlayerProvider._internal(
(ref) => create(ref as JoinRequestsForPlayerRef),
from: from,
name: null,
dependencies: null,
allTransitiveDependencies: null,
debugGetCreateSourceHash: null,
playerId: playerId,
),
);
}
@override
AutoDisposeStreamProviderElement<List<JoinRequest>> createElement() {
return _JoinRequestsForPlayerProviderElement(this);
}
@override
bool operator ==(Object other) {
return other is JoinRequestsForPlayerProvider && other.playerId == playerId;
}
@override
int get hashCode {
var hash = _SystemHash.combine(0, runtimeType.hashCode);
hash = _SystemHash.combine(hash, playerId.hashCode);
return _SystemHash.finish(hash);
}
}
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin JoinRequestsForPlayerRef
on AutoDisposeStreamProviderRef<List<JoinRequest>> {
/// The parameter `playerId` of this provider.
String get playerId;
}
class _JoinRequestsForPlayerProviderElement
extends AutoDisposeStreamProviderElement<List<JoinRequest>>
with JoinRequestsForPlayerRef {
_JoinRequestsForPlayerProviderElement(super.provider);
@override
String get playerId => (origin as JoinRequestsForPlayerProvider).playerId;
}
// ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package