<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class HelpfulVote extends Model
{
    protected $fillable = [
        'review_id',
        'user_id',
    ];

    // Relationships
    public function review(): BelongsTo
    {
        return $this->belongsTo(Review::class);
    }

    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class);
    }

    // Helper method to toggle vote
    public static function toggle(int $reviewId, int $userId): bool
    {
        $vote = static::where([
            'review_id' => $reviewId,
            'user_id' => $userId,
        ])->first();

        if ($vote) {
            $vote->delete();
            return false;
        }

        static::create([
            'review_id' => $reviewId,
            'user_id' => $userId,
        ]);
        return true;
    }
}