<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

return new class extends Migration
{
    public function up(): void
    {
        $this->updatePhotovoltaicFlow(
            'Der Solarstrom nimmt bis zum Wechselrichter einen gemeinsamen Weg. Danach wird er auf den direkten Verbrauch im Gebäude und die Nutzung verbleibender Überschüsse verteilt.',
            'Speicherung & Einspeisung',
            'Überschüsse werden gespeichert oder kontrolliert ins Netz eingespeist.',
        );
    }

    public function down(): void
    {
        $this->updatePhotovoltaicFlow(
            'Vier Stationen erklären den kompletten Energiefluss – von der Erzeugung auf dem Dach bis zur intelligenten Nutzung im Gebäude.',
            'Speicher & Netz',
            'Überschüsse werden gespeichert, geladen oder kontrolliert eingespeist.',
        );
    }

    private function updatePhotovoltaicFlow(string $intro, string $lastLabel, string $lastText): void
    {
        $service = DB::table('services')->where('slug', 'photovoltaik')->first();

        if (! $service) {
            return;
        }

        $steps = json_decode($service->visual_steps ?: '[]', true) ?: [];

        if (isset($steps[3])) {
            $steps[3]['label'] = $lastLabel;
            $steps[3]['text'] = $lastText;
        }

        DB::table('services')->where('id', $service->id)->update([
            'explainer_intro' => $intro,
            'visual_steps' => json_encode($steps, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
            'updated_at' => now(),
        ]);
    }
};
