Implementation
factory DedicatedDatabase.fromMap(
Map<String, dynamic> map,
) {
map = {
'\$id': "",
'\$createdAt': "",
'\$updatedAt': "",
'projectId': "",
'name': "",
'version': "",
'specification': "",
'backend': "",
'hostname': "",
'connectionUser': "",
'connectionPassword': "",
'connectionString': "",
'ssl': false,
'status': "provisioning",
'containerStatus': "",
'lifecycleState': "",
'idleTimeoutMinutes': 15,
'cpu': 500,
'memory': 512,
'storage': 10,
'storageStatus': "idle",
'storageTargetGb': 0,
'storageClass': "ssd",
'storageMaxGb': 0,
'nodePool': "",
'replicas': 0,
'syncMode': "",
'networkMaxConnections': 100,
'networkIdleTimeoutSeconds': 900,
'networkIPAllowlist': [],
'backupEnabled': true,
'pitr': true,
'pitrRetentionDays': 7,
'storageAutoscaling': true,
'storageAutoscalingThresholdPercent': 85,
'storageAutoscalingMaxGb': 0,
'maintenanceWindowDay': "sun",
'maintenanceWindowHourUtc': 3,
'metricsEnabled': false,
'sqlApiEnabled': true,
'sqlApiAllowedStatements': ["SELECT", "INSERT", "UPDATE", "DELETE"],
'sqlApiMaxRows': 10000,
'sqlApiMaxBytes': 10485760,
'sqlApiTimeoutSeconds': 30,
'error': "",
...map,
};
return DedicatedDatabase(
$id: map['\$id'].toString(),
$createdAt: map['\$createdAt'].toString(),
$updatedAt: map['\$updatedAt'].toString(),
projectId: map['projectId'].toString(),
name: map['name'].toString(),
api: map['api']?.toString(),
engine: map['engine']?.toString(),
version: map['version'].toString(),
specification: map['specification'].toString(),
backend: map['backend'].toString(),
hostname: map['hostname'].toString(),
connectionPort: map['connectionPort'],
connectionUser: map['connectionUser'].toString(),
connectionPassword: map['connectionPassword'].toString(),
credentialGeneration: map['credentialGeneration'],
connectionString: map['connectionString'].toString(),
ssl: map['ssl'],
status: map['status'].toString(),
containerStatus: map['containerStatus'].toString(),
lastAccessedAt: map['lastAccessedAt']?.toString(),
idleUntil: map['idleUntil']?.toString(),
lifecycleState: map['lifecycleState'].toString(),
idleTimeoutMinutes: map['idleTimeoutMinutes'],
cpu: map['cpu'],
memory: map['memory'],
storage: map['storage'],
storageStatus: map['storageStatus'].toString(),
storageTargetGb: map['storageTargetGb'],
storageResizeStartedAt: map['storageResizeStartedAt']?.toString(),
storageClass: map['storageClass'].toString(),
storageMaxGb: map['storageMaxGb'],
nodePool: map['nodePool'].toString(),
replicas: map['replicas'],
syncMode: map['syncMode'].toString(),
networkMaxConnections: map['networkMaxConnections'],
networkIdleTimeoutSeconds: map['networkIdleTimeoutSeconds'],
networkIPAllowlist: List.from(map['networkIPAllowlist'] ?? []),
backupEnabled: map['backupEnabled'],
pitr: map['pitr'],
pitrRetentionDays: map['pitrRetentionDays'],
storageAutoscaling: map['storageAutoscaling'],
storageAutoscalingThresholdPercent:
map['storageAutoscalingThresholdPercent'],
storageAutoscalingMaxGb: map['storageAutoscalingMaxGb'],
maintenanceWindowDay: map['maintenanceWindowDay'].toString(),
maintenanceWindowHourUtc: map['maintenanceWindowHourUtc'],
metricsEnabled: map['metricsEnabled'],
sqlApiEnabled: map['sqlApiEnabled'],
sqlApiAllowedStatements: List.from(map['sqlApiAllowedStatements'] ?? []),
sqlApiMaxRows: map['sqlApiMaxRows'],
sqlApiMaxBytes: map['sqlApiMaxBytes'],
sqlApiTimeoutSeconds: map['sqlApiTimeoutSeconds'],
error: map['error'].toString(),
);
}