<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class AnimeRequest extends Model
{
    protected $fillable = [
        'user_id', 'title', 'original_title', 'note',
        'status', 'admin_note', 'vote_count',
    ];

    const STATUSES = [
        'pending'  => ['label' => 'Bekliyor',    'color' => '#f0883e'],
        'approved' => ['label' => 'Onaylandı',   'color' => '#3fb950'],
        'rejected' => ['label' => 'Reddedildi',  'color' => '#f85149'],
        'added'    => ['label' => 'Eklendi',      'color' => '#79c0ff'],
    ];

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

    public function hasVotedBy(?User $user, string $ip): bool
    {
        if ($user) {
            return $this->votes()->where('user_id', $user->id)->exists();
        }
        return $this->votes()->where('ip', $ip)->exists();
    }
}
