selfprivacy.org.app/lib/logic/cubit/dns_records/dns_records_state.dart

75 lines
1.6 KiB
Dart
Raw Normal View History

2022-02-16 09:09:53 +02:00
part of 'dns_records_cubit.dart';
enum DnsRecordsStatus {
uninitialized,
refreshing,
good,
error,
}
enum DnsRecordsCategory {
services,
email,
other,
}
class DnsRecordsState extends ServerInstallationDependendState {
2022-02-16 09:09:53 +02:00
const DnsRecordsState({
this.dnsState = DnsRecordsStatus.uninitialized,
this.dnsRecords = const [],
});
final DnsRecordsStatus dnsState;
final List<DesiredDnsRecord> dnsRecords;
@override
List<Object> get props => [
dnsState,
dnsRecords,
];
DnsRecordsState copyWith({
2022-06-05 22:36:32 +03:00
final DnsRecordsStatus? dnsState,
final List<DesiredDnsRecord>? dnsRecords,
}) =>
DnsRecordsState(
dnsState: dnsState ?? this.dnsState,
dnsRecords: dnsRecords ?? this.dnsRecords,
);
2022-02-16 09:09:53 +02:00
}
class DesiredDnsRecord {
const DesiredDnsRecord({
required this.name,
required this.content,
2022-06-05 22:36:32 +03:00
this.type = 'A',
2022-02-16 09:09:53 +02:00
this.description = '',
this.category = DnsRecordsCategory.services,
this.isSatisfied = false,
});
final String name;
final String type;
final String content;
final String description;
final DnsRecordsCategory category;
final bool isSatisfied;
DesiredDnsRecord copyWith({
2022-06-05 22:36:32 +03:00
final String? name,
final String? type,
final String? content,
final String? description,
final DnsRecordsCategory? category,
final bool? isSatisfied,
}) =>
DesiredDnsRecord(
name: name ?? this.name,
type: type ?? this.type,
content: content ?? this.content,
description: description ?? this.description,
category: category ?? this.category,
isSatisfied: isSatisfied ?? this.isSatisfied,
);
2022-02-16 09:09:53 +02:00
}