webmoney/backend/app/Models/CostCenter.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

79 lines
1.6 KiB
PHP
Executable File

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class CostCenter extends Model
{
use HasFactory, SoftDeletes;
protected $fillable = [
'user_id',
'name',
'code',
'description',
'color',
'icon',
'is_active',
'is_system',
];
protected $casts = [
'is_active' => 'boolean',
'is_system' => 'boolean',
];
/**
* Relação com o usuário
*/
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
/**
* Relação com as palavras-chave
*/
public function keywords(): HasMany
{
return $this->hasMany(CostCenterKeyword::class);
}
/**
* Relação com as palavras-chave ativas
*/
public function activeKeywords(): HasMany
{
return $this->hasMany(CostCenterKeyword::class)->where('is_active', true);
}
/**
* Scope para centros de custo ativos
*/
public function scopeActive($query)
{
return $query->where('is_active', true);
}
/**
* Scope para centro de custo do sistema (padrão do usuário)
*/
public function scopeSystem($query)
{
return $query->where('is_system', true);
}
/**
* Scope para buscar por código
*/
public function scopeByCode($query, string $code)
{
return $query->where('code', $code);
}
}