66 lines
1.3 KiB
PHP
66 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* ============================================================
|
|
*
|
|
* @project biiproject
|
|
*
|
|
* @author Andika Debi Putra
|
|
*
|
|
* @email andikadebiputra@gmail.com
|
|
*
|
|
* @website https://biiproject.com
|
|
*
|
|
* @copyright Copyright (c) 2026 Andika Debi Putra
|
|
* @license Proprietary - All Rights Reserved
|
|
*
|
|
* @version 1.0.0
|
|
*
|
|
* @created 2026-05-01
|
|
* ============================================================
|
|
*/
|
|
|
|
namespace App\Models\AI;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Prunable;
|
|
|
|
class AiUsageLog extends Model
|
|
{
|
|
use Prunable;
|
|
|
|
protected $fillable = [
|
|
'user_id',
|
|
'provider',
|
|
'model',
|
|
'prompt',
|
|
'response',
|
|
'prompt_tokens',
|
|
'completion_tokens',
|
|
'total_tokens',
|
|
'estimated_cost',
|
|
'status',
|
|
'error_message',
|
|
'metadata',
|
|
];
|
|
|
|
protected $casts = [
|
|
'metadata' => 'array',
|
|
'estimated_cost' => 'decimal:6',
|
|
];
|
|
|
|
/**
|
|
* Get the prunable model query.
|
|
*/
|
|
public function prunable()
|
|
{
|
|
return static::where('created_at', '<=', now()->subMonths(3));
|
|
}
|
|
|
|
public function user()
|
|
{
|
|
return $this->belongsTo(User::class);
|
|
}
|
|
}
|