webmoney/backend/app/Models/ImportLog.php
marco 54cccdd095 refactor: migração para desenvolvimento direto no servidor
- Removido README.md padrão do Laravel (backend)
- Removidos scripts de deploy (não mais necessários)
- Atualizado copilot-instructions.md para novo fluxo
- Adicionada documentação de auditoria do servidor
- Sincronizado código de produção com repositório

Novo workflow:
- Trabalhamos diretamente em /root/webmoney (symlink para /var/www/webmoney)
- Mudanças PHP são instantâneas
- Mudanças React requerem 'npm run build'
- Commit após validação funcional
2025-12-19 11:45:32 +01:00

87 lines
1.9 KiB
PHP
Executable File

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class ImportLog extends Model
{
protected $fillable = [
'user_id',
'import_mapping_id',
'original_filename',
'file_type',
'total_rows',
'imported_rows',
'skipped_rows',
'error_rows',
'errors',
'status',
];
protected $casts = [
'errors' => 'array',
'total_rows' => 'integer',
'imported_rows' => 'integer',
'skipped_rows' => 'integer',
'error_rows' => 'integer',
];
public const STATUS_PENDING = 'pending';
public const STATUS_PROCESSING = 'processing';
public const STATUS_COMPLETED = 'completed';
public const STATUS_FAILED = 'failed';
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function importMapping(): BelongsTo
{
return $this->belongsTo(ImportMapping::class);
}
/**
* Mark as processing
*/
public function markAsProcessing(): void
{
$this->update(['status' => self::STATUS_PROCESSING]);
}
/**
* Mark as completed
*/
public function markAsCompleted(int $imported, int $skipped, int $errors, ?array $errorDetails = null): void
{
$this->update([
'status' => self::STATUS_COMPLETED,
'imported_rows' => $imported,
'skipped_rows' => $skipped,
'error_rows' => $errors,
'errors' => $errorDetails,
]);
}
/**
* Mark as failed
*/
public function markAsFailed(array $errors): void
{
$this->update([
'status' => self::STATUS_FAILED,
'errors' => $errors,
]);
}
/**
* Scope for status
*/
public function scopeWithStatus($query, string $status)
{
return $query->where('status', $status);
}
}