<?php

namespace Tests\Unit;

use App\Http\Controllers\Admin\ArticleController;
use App\Models\Article;
use PHPUnit\Framework\TestCase;

class EditHousePriceHistoryPayloadTest extends TestCase
{
    public function test_it_adds_the_current_price_history_to_the_outbound_payload()
    {
        $payload = new Article(['company_id' => 2, 'building_id' => 100011588]);
        $historyData = [
            'company_id' => 2,
            'article_id' => 100011588,
            'price' => 4520,
            'regist_date' => '2026-08-11',
        ];

        $result = (new TestableArticleController)->addPriceHistoryToPayload(
            $payload,
            $historyData
        );

        $this->assertSame($historyData, $result['history_data']);
        $this->assertSame('2026-08-11', $result['regist_date']);
    }

    public function test_it_does_not_add_price_history_when_the_price_is_unchanged()
    {
        $payload = new Article(['company_id' => 2, 'building_id' => 100011588]);

        $result = (new TestableArticleController)->addPriceHistoryToPayload(
            $payload,
            null
        );

        $this->assertArrayNotHasKey('history_data', $result->getAttributes());
        $this->assertArrayNotHasKey('regist_date', $result->getAttributes());
    }
}

class TestableArticleController extends ArticleController
{
    public function addPriceHistoryToPayload($payload, $historyData)
    {
        return $this->appendPriceHistoryToPayload($payload, $historyData);
    }
}
