import '../../../domain/models/auth.dart'; import 'localiser_client.dart'; class OnboardingChecklist { const OnboardingChecklist({ required this.hasAdmin, required this.hasFloors, required this.hasRooms, required this.hasSensorsPlaced, required this.hasTags, }); final bool hasAdmin; final bool hasFloors; final bool hasRooms; final bool hasSensorsPlaced; final bool hasTags; factory OnboardingChecklist.fromJson(Map json) => OnboardingChecklist( hasAdmin: json['has_admin'] as bool, hasFloors: json['has_floors'] as bool, hasRooms: json['has_rooms'] as bool, hasSensorsPlaced: json['has_sensors_placed'] as bool, hasTags: json['has_tags'] as bool, ); } class OnboardingClient extends LocaliserdClient { OnboardingClient({required super.config}); Future getChecklist() async { final json = await get('/api/onboarding') as Map; return OnboardingChecklist.fromJson(json); } /// Creates the first admin user. Only succeeds when no users exist yet. /// Returns the JWT so the caller can immediately authenticate. Future setup(String username, String password) async { final json = await post('/api/setup', { 'username': username, 'password': password, }) as Map; return TokenResponse.fromJson(json); } }