<?php

namespace App\Services;

use App\Models\Article;
use App\Support\MansionRoomSyncFields;

class MansionRoomSynchronizer
{
    public function sync(int $companyId, int $mansionId, array $payload): int
    {
        $fields = MansionRoomSyncFields::fromPayload($payload);
        $updated = 0;

        $rooms = Article::where('company_id', $companyId)
            ->where('mansion_id', $mansionId)
            ->where(function ($query) {
                $query->whereNull('del')->orWhere('del', '0');
            })
            ->get();

        foreach ($rooms as $room) {
            $room->fill($fields);

            if ($room->isDirty()) {
                $room->save();
                $updated++;
            }
        }

        return $updated;
    }
}
