import 'package:adguard_home_manager/functions/time_server_disabled.dart'; import 'package:adguard_home_manager/models/clients.dart'; import 'package:adguard_home_manager/models/dns_statistics.dart'; import 'package:adguard_home_manager/models/filtering_status.dart'; class ServerStatus { int loadStatus; ServerStatusData? data; ServerStatus({ required this.loadStatus, this.data }); } class ServerStatusData { final DnsStatistics stats; final List clients; final FilteringStatus filteringStatus; int timeGeneralDisabled; DateTime? disabledUntil; bool generalEnabled; bool filteringEnabled; bool safeSearchEnabled; bool safeBrowsingEnabled; bool parentalControlEnabled; final String serverVersion; bool safeSeachBing; bool safeSearchGoogle; bool safeSearchDuckduckgo; bool safeSearchPixabay; bool safeSearchYandex; bool safeSearchYoutube; ServerStatusData({ required this.stats, required this.clients, required this.filteringStatus, required this.timeGeneralDisabled, this.disabledUntil, required this.generalEnabled, required this.filteringEnabled, required this.safeSearchEnabled, required this.safeBrowsingEnabled, required this.parentalControlEnabled, required this.serverVersion, required this.safeSeachBing, required this.safeSearchGoogle, required this.safeSearchDuckduckgo, required this.safeSearchPixabay, required this.safeSearchYandex, required this.safeSearchYoutube }); factory ServerStatusData.fromJson(Map json) => ServerStatusData( stats: DnsStatistics.fromJson(json['stats']), clients: json["clients"] != null ? List.from(json["clients"].map((x) => Client.fromJson(x))) : [], generalEnabled: json['status']['protection_enabled'], timeGeneralDisabled: json['status']['protection_disabled_duration'] ?? 0, disabledUntil: json['status']['protection_disabled_duration'] > 0 ? generateTimeDeadline(json['status']['protection_disabled_duration']) : null , filteringStatus: FilteringStatus.fromJson(json['filtering']), filteringEnabled: json['filtering']['enabled'], safeSearchEnabled: json['safeSearch']['enabled'], safeBrowsingEnabled: json['safeBrowsingEnabled']['enabled'], parentalControlEnabled: json['parentalControlEnabled']['enabled'], serverVersion: json['status']['version'], safeSeachBing: json['safeSearch']['bing'], safeSearchDuckduckgo: json['safeSearch']['duckduckgo'], safeSearchGoogle: json['safeSearch']['google'], safeSearchPixabay: json['safeSearch']['pixabay'], safeSearchYandex: json['safeSearch']['yandex'], safeSearchYoutube: json['safeSearch']['youtube'], ); }