<?php

namespace App\Http\Controllers\Api\Pos;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\JsonResponse;

class StaffController extends Controller
{
    /**
     * Get all staff members for salesman dropdown
     */
    public function index(): JsonResponse
    {
        try {
            $currentUser = auth()->user();
            $types = $currentUser->isAdmin() ? ['admin','staff'] : ['staff'];
            $staff = User::whereIn('user_type', $types)
                ->select('id', 'name', 'email')
                ->orderBy('name')
                ->get();

            // Get current user's role discount configuration
            $role = $currentUser->roles()->first();
            $maxDiscountPercentage = $role ? $role->max_discount_percentage : null;
            $otpRequiredForDiscount = $role ? (bool) $role->otp_required_for_discount : false;

            return response()->json([
                'success' => true,
                'data' => $staff->map(function ($user) {
                    return [
                        'id' => $user->id,
                        'name' => $user->name,
                        'email' => $user->email,
                    ];
                }),
                'current_user_id' => $currentUser->id,
                'discount_config' => [
                    'max_discount_percentage' => $maxDiscountPercentage,
                    'otp_required_for_discount' => $otpRequiredForDiscount,
                ]
            ]);
        } catch (\Exception $e) {
            return response()->json([
                'success' => false,
                'message' => 'Failed to fetch staff members: ' . $e->getMessage(),
            ], 500);
        }
    }
}