mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2024-11-18 22:59:16 +00:00
82 lines
1.5 KiB
Dart
82 lines
1.5 KiB
Dart
import 'package:hive/hive.dart';
|
|
|
|
part 'server_details.g.dart';
|
|
|
|
@HiveType(typeId: 2)
|
|
class ServerHostingDetails {
|
|
ServerHostingDetails({
|
|
required this.ip4,
|
|
required this.id,
|
|
required this.createTime,
|
|
required this.volume,
|
|
required this.apiToken,
|
|
required this.provider,
|
|
this.startTime,
|
|
});
|
|
|
|
@HiveField(0)
|
|
final String ip4;
|
|
|
|
@HiveField(1)
|
|
final int id;
|
|
|
|
@HiveField(3)
|
|
final DateTime? createTime;
|
|
|
|
@HiveField(2)
|
|
final DateTime? startTime;
|
|
|
|
@HiveField(4)
|
|
final ServerVolume volume;
|
|
|
|
@HiveField(5)
|
|
final String apiToken;
|
|
|
|
@HiveField(6, defaultValue: ServerProvider.hetzner)
|
|
final ServerProvider provider;
|
|
|
|
ServerHostingDetails copyWith({final DateTime? startTime}) =>
|
|
ServerHostingDetails(
|
|
startTime: startTime ?? this.startTime,
|
|
createTime: createTime,
|
|
id: id,
|
|
ip4: ip4,
|
|
volume: volume,
|
|
apiToken: apiToken,
|
|
provider: provider,
|
|
);
|
|
|
|
@override
|
|
String toString() => id.toString();
|
|
}
|
|
|
|
@HiveType(typeId: 5)
|
|
class ServerVolume {
|
|
ServerVolume({
|
|
required this.id,
|
|
required this.name,
|
|
required this.sizeByte,
|
|
required this.serverId,
|
|
required this.linuxDevice,
|
|
});
|
|
|
|
@HiveField(1)
|
|
int id;
|
|
@HiveField(2)
|
|
String name;
|
|
@HiveField(3, defaultValue: 10737418240) // 10 Gb
|
|
int sizeByte;
|
|
@HiveField(4, defaultValue: null)
|
|
int? serverId;
|
|
@HiveField(5, defaultValue: null)
|
|
String? linuxDevice;
|
|
}
|
|
|
|
@HiveType(typeId: 101)
|
|
enum ServerProvider {
|
|
@HiveField(0)
|
|
unknown,
|
|
@HiveField(1)
|
|
hetzner,
|
|
}
|