<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Http\Requests\AppBannerSettingRequest;
use App\Http\Resources\DefaultResource;
use App\Models\AppBannerSetting;

class AppBannerSettingController extends Controller
{
    public function show(): DefaultResource
    {
        $record = AppBannerSetting::query()->firstOrCreate(
            ['id' => 1],
            [
                'title' => '',
                'description' => '',
                'show_app_store_button' => true,
                'show_play_store_button' => true,
                'app_store_link' => null,
                'play_store_link' => null,
            ]
        );

        return DefaultResource::make($record);
    }

    public function upsert(AppBannerSettingRequest $request): DefaultResource
    {
        $record = AppBannerSetting::query()->firstOrCreate(
            ['id' => 1],
            [
                'title' => '',
                'description' => '',
                'show_app_store_button' => true,
                'show_play_store_button' => true,
                'app_store_link' => null,
                'play_store_link' => null,
            ]
        );

        $record->fill($request->validated())->save();

        if ($request->hasFile('image')) {
            $record->image = $record->imageUpdate($request->file('image'), $record);
        }

        if ($request->hasFile('app_store_image')) {
            $record->app_store_image = $record->imageUpdate(
                $request->file('app_store_image'),
                $record,
                'app_store'
            );
        }

        if ($request->hasFile('play_store_image')) {
            $record->play_store_image = $record->imageUpdate(
                $request->file('play_store_image'),
                $record,
                'play_store'
            );
        }

        return DefaultResource::make($record->fresh());
    }
}
