import 'package:mileograph_flutter/objects/objects.dart'; class TestData { static final user = UserData( username: 'railfan', fullName: 'Alex Rider', userId: 'user-123', email: 'alex@example.com', entriesVisibility: 'public', mileageVisibility: 'public', elevated: true, disabled: false, ); static final topLocos = [ LocoSummary( locoId: 100, locoType: 'D', locoNumber: '001', locoName: 'Atlas', locoClass: '67', locoOperator: 'TestRail', mileage: 1200.5, journeys: 18, trips: 6, status: 'Active', domain: 'mainline', owner: 'TestRail', livery: 'Blue', location: 'Depot', ), LocoSummary( locoId: 101, locoType: 'D', locoNumber: '002', locoName: 'Orion', locoClass: '68', locoOperator: 'TestRail', mileage: 980.2, journeys: 12, trips: 4, status: 'Active', domain: 'mainline', owner: 'TestRail', livery: 'Orange', location: 'Central', ), ]; static final leaderboard = [ LeaderboardEntry( userId: 'u1', username: 'driver_one', userFullName: 'Driver One', mileage: 3456.7, ), LeaderboardEntry( userId: 'u2', username: 'driver_two', userFullName: 'Driver Two', mileage: 2999.1, ), ]; static final tripSummaries = [ TripSummary( tripId: 1, tripName: 'North Run', tripMileage: 220.4, legCount: 3, locoStats: [ TripLocoStat(locoClass: '67', number: '001', won: true), TripLocoStat(locoClass: '68', number: '002', won: false), ], startDate: DateTime(2023, 10, 11), endDate: DateTime(2023, 10, 13), ), TripSummary( tripId: 2, tripName: 'Harbor Loop', tripMileage: 85.6, legCount: 1, locoStats: const [], startDate: DateTime(2023, 11, 5), endDate: DateTime(2023, 11, 5), ), ]; static final tripDetails = [ TripDetail( id: 1, name: 'North Run', mileage: 220.4, legCount: 3, locoStats: [ TripLocoStat(locoClass: '67', number: '001', won: true), ], legs: [ TripLeg( id: 10, start: 'London', end: 'Leeds', beginTime: DateTime(2023, 10, 11, 9, 15), network: 'National', route: 'London → Leeds', mileage: 185.2, notes: 'Clear run', locos: [ Loco( id: 100, type: 'D', number: '001', name: 'Atlas', locoClass: '67', operator: 'TestRail', notes: '', evn: '', ), ], ), ], ), ]; static final legs = [ Leg( id: 501, tripId: 1, start: 'London', end: 'Oxford', beginTime: DateTime(2023, 9, 12, 7, 45), timezone: 0, network: 'National', route: ['London', 'Oxford'], mileage: 62.3, notes: 'Morning service', headcode: '1A00', driving: 0, user: 'railfan', locos: [ Loco( id: 100, type: 'D', number: '001', name: 'Atlas', locoClass: '67', operator: 'TestRail', notes: '', evn: '', ), ], ), Leg( id: 502, tripId: 2, start: 'Oxford', end: 'Bristol', beginTime: DateTime(2023, 9, 13, 16, 10), timezone: 0, network: 'National', route: ['Oxford', 'Bristol'], mileage: 74.8, notes: 'Evening run', headcode: '1B10', driving: 0, user: 'railfan', locos: [ Loco( id: 101, type: 'D', number: '002', name: 'Orion', locoClass: '68', operator: 'TestRail', notes: '', evn: '', ), ], ), ]; static List onThisDayLegs() { final pastYear = DateTime.now().year - 1; return [ Leg( id: 900, tripId: 3, start: 'York', end: 'Durham', beginTime: DateTime(pastYear, 7, 4, 10, 30), timezone: 0, network: 'National', route: ['York', 'Durham'], mileage: 60.0, notes: 'Anniversary run', headcode: '1C11', driving: 0, user: 'railfan', locos: [ Loco( id: 102, type: 'D', number: '003', name: 'Nova', locoClass: '66', operator: 'TestRail', notes: '', evn: '', ), ], ), ]; } static final latestLocoChanges = [ LocoChange( locoId: 200, locoClass: '67', locoNumber: '001', locoName: 'Atlas', attrCode: 'loco_status', attrDisplay: 'Status', valueDisplay: 'Active', validFrom: DateTime(2023, 10, 1), approvedAt: DateTime(2023, 10, 2), approvedBy: 'moderator', ), ]; static final classClearance = [ ClassClearanceProgress( className: 'Class 67', completed: 12, total: 30, percentComplete: 40.0, activeCompleted: 8, activeTotal: 20, activePercent: 40.0, ), ]; static final traction = [ LocoSummary( locoId: 100, locoType: 'D', locoNumber: '001', locoName: 'Atlas', locoClass: '67', locoOperator: 'TestRail', mileage: 1200.5, journeys: 18, trips: 6, status: 'Active', domain: 'mainline', owner: 'TestRail', livery: 'Blue', location: 'Depot', ), LocoSummary( locoId: 101, locoType: 'D', locoNumber: '002', locoName: 'Orion', locoClass: '68', locoOperator: 'TestRail', mileage: 980.2, journeys: 12, trips: 4, status: 'Active', domain: 'mainline', owner: 'TestRail', livery: 'Orange', location: 'Central', ), ]; static final eventFields = [ const EventField(name: 'power_unit', display: 'Power Unit', type: 'text'), const EventField( name: 'cab_air_conditioning', display: 'Cab A/C', enumValues: ['Yes', 'No'], ), ]; static final classStats = { 'loco_class': '67', 'total_mileage_with_class': 5500.5, 'avg_mileage_per_entry': 80.2, 'avg_mileage_per_loco_had': 420.0, 'had_count': 12, 'entries_with_class': 42, 'class_stats': { 'total': 30, 'status': [ {'status': 'Active', 'count': 18}, {'status': 'Stored', 'count': 12}, ], 'domain': [ {'domain': 'mainline', 'count': 20}, {'domain': 'heritage', 'count': 10}, ], }, }; static final classLeaderboard = [ LeaderboardEntry( userId: 'u3', username: 'fan_three', userFullName: 'Fan Three', mileage: 1500.0, ), ]; static final homepageStats = HomepageStats( totalMileage: 4523.8, yearlyMileage: [ YearlyMileage(year: DateTime.now().year, mileage: 1200.5), YearlyMileage(year: DateTime.now().year - 1, mileage: 990.2), ], topLocos: topLocos, leaderboard: leaderboard, friendsLeaderboard: leaderboard, trips: tripSummaries, legCount: 27, user: user, ); }