selfprivacy.org.app/lib/logic/models/hive/server_domain.dart

47 lines
923 B
Dart
Raw Normal View History

2021-01-06 17:35:57 +00:00
import 'package:hive/hive.dart';
import 'package:selfprivacy/logic/api_maps/graphql_maps/schema/schema.graphql.dart';
2021-01-06 17:35:57 +00:00
part 'server_domain.g.dart';
2021-01-06 17:35:57 +00:00
@HiveType(typeId: 3)
class ServerDomain {
ServerDomain({
2021-03-26 13:38:39 +00:00
required this.domainName,
required this.zoneId,
required this.provider,
2021-03-26 13:38:39 +00:00
});
2021-01-06 17:35:57 +00:00
@HiveField(0)
2021-03-26 13:38:39 +00:00
final String domainName;
2021-01-06 17:35:57 +00:00
@HiveField(1)
2021-03-26 13:38:39 +00:00
final String zoneId;
2021-01-06 17:35:57 +00:00
2022-05-24 18:55:39 +00:00
@HiveField(2, defaultValue: DnsProvider.cloudflare)
final DnsProvider provider;
2021-01-06 17:35:57 +00:00
@override
2022-06-05 19:36:32 +00:00
String toString() => '$domainName: $zoneId';
2021-01-06 17:35:57 +00:00
}
@HiveType(typeId: 100)
enum DnsProvider {
@HiveField(0)
2022-05-24 18:55:39 +00:00
unknown,
@HiveField(1)
2022-05-24 18:55:39 +00:00
cloudflare,
@HiveField(2)
desec;
factory DnsProvider.fromGraphQL(final Enum$DnsProvider provider) {
switch (provider) {
case Enum$DnsProvider.CLOUDFLARE:
return cloudflare;
case Enum$DnsProvider.DESEC:
return desec;
default:
return unknown;
}
}
}