<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;

class MediaController extends Controller
{
    public function uploadImage(Request $request)
    {
        $request->validate([
            'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:10240',
        ]);

        try {
            $file = $request->file('file');
            $fileName = time() . '_' . Str::random(10) . '.' . $file->getClientOriginalExtension();

            // Store in public/uploads/images directory
            $path = $file->storeAs('uploads/images', $fileName, 'public');
            $url = Storage::url($path);

            return response()->json([
                'success' => true,
                'url'     => $url,
                'path'    => $url,
                'name'    => $fileName,
                'size'    => $file->getSize(),
            ]);
        } catch (\Exception $e) {
            return response()->json([
                'success' => false,
                'error'   => 'Failed to upload image',
                'message' => $e->getMessage(),
            ], 500);
        }
    }
}
