37 lines
915 B
PHP
37 lines
915 B
PHP
<?php
|
|
|
|
class TransactionStore
|
|
{
|
|
public static function empty(): array
|
|
{
|
|
return [
|
|
'activeTransactionId' => '',
|
|
'transactionStartTime' => 0,
|
|
'transactionStartEnergyImport' => 0.0,
|
|
'transactionStartEnergyExport' => 0.0,
|
|
'lastTransactionState' => '',
|
|
'lastIdToken' => '',
|
|
'sessionEnergyImport' => 0.0,
|
|
'sessionEnergyExport' => 0.0,
|
|
'sessionPeakPower' => 0.0,
|
|
'sessionStopReason' => ''
|
|
];
|
|
}
|
|
|
|
public static function fromJson(string $json): array
|
|
{
|
|
$data = json_decode($json, true);
|
|
if (!is_array($data)) {
|
|
return self::empty();
|
|
}
|
|
return array_replace(self::empty(), $data);
|
|
}
|
|
|
|
public static function toJson(array $state): string
|
|
{
|
|
return json_encode(array_replace(self::empty(), $state));
|
|
}
|
|
}
|
|
|
|
?>
|