Appearance
Patrimônio
Visão Geral
O módulo de Patrimônio (Assets) gerencia os bens da igreja — equipamentos, instrumentos, mobiliário, imóveis, etc. Cada bem pode ter tipo, condição, status, foto e histórico de movimentações (transferências, manutenções, baixas).
Models
AssetType
Namespace: App\Domain\Asset\Models\AssetType
Categoria de patrimônio, criada pela própria igreja.
| Campo | Tipo | Descrição |
|---|---|---|
| ulid | string | Identificador público |
| nome | string | Nome da categoria (ex: Instrumento, Móvel) |
Asset
Namespace: App\Domain\Asset\Models\Asset
Usa ULID, SoftDeletes, Auditable e Spatie MediaLibrary (collection foto).
| Campo | Tipo | Descrição |
|---|---|---|
| ulid | string | Identificador público |
| asset_type_id | FK | Tipo do patrimônio |
| congregation_id | FK | Congregação proprietária (nullable) |
| nome | string | Nome do bem |
| descricao | text | Descrição detalhada (nullable) |
| numero_serie | string | Número de série (nullable) |
| valor_aquisicao | decimal | Valor de aquisição (nullable) |
| data_aquisicao | date | Data de aquisição (nullable) |
| status | enum AssetStatus | Status atual do bem |
| condicao | enum AssetCondition | Condição física do bem |
Relationships:
assetType()— belongsTo AssetTypecongregation()— belongsTo Congregationmovements()— hasMany AssetMovementgetFotoUrlAttribute()— URL pública via rotamedia.show(multi-tenant safe)
AssetMovement
Namespace: App\Domain\Asset\Models\AssetMovement
Histórico de movimentações do bem.
| Campo | Tipo | Descrição |
|---|---|---|
| asset_id | FK | Bem vinculado |
| tipo | enum MovementType | Tipo da movimentação |
| descricao | text | Descrição/motivo |
| data_movimentacao | date | Data da movimentação |
| de_congregation_id | FK | Congregação de origem (nullable) |
| para_congregation_id | FK | Congregação de destino (nullable) |
| responsavel_id | FK users | Usuário responsável (nullable) |
Relationships:
asset()— belongsTo AssetdeCongregation()— belongsTo Congregation (de_congregation_id)paraCongregation()— belongsTo Congregation (para_congregation_id)
Enums
AssetStatus
| Valor | Label |
|---|---|
ativo | Ativo |
em_manutencao | Em Manutenção |
baixado | Baixado |
AssetCondition
| Valor | Label |
|---|---|
novo | Novo |
bom | Bom |
regular | Regular |
ruim | Ruim |
MovementType
| Valor | Descrição |
|---|---|
transferencia | Transferência entre congregações |
manutencao | Envio para manutenção |
baixa | Baixa/descarte do bem |
Actions
| Action | Descrição |
|---|---|
| CreateAssetAction | Cria bem + upload de foto (opcional) |
| UpdateAssetAction | Atualiza dados do bem e substitui foto |
| DeleteAssetAction | Soft delete do bem |
| RegisterAssetMovementAction | Registra movimentação e atualiza status/congregação |
Endpoints
| Método | Rota | Controller | Descrição |
|---|---|---|---|
| GET | /assets | AssetController@index | Lista patrimônio com filtros |
| POST | /assets | AssetController@store | Cadastrar bem |
| GET | /assets/{ulid} | AssetController@show | Detalhes do bem |
| PUT | /assets/{ulid} | AssetController@update | Atualizar bem |
| DELETE | /assets/{ulid} | AssetController@destroy | Excluir bem |
| POST | /assets/{ulid}/movements | AssetMovementController@store | Registrar movimentação |
Permissões
| Permissão | Quem tem |
|---|---|
| asset.view | admin-igreja, secretario, tesoureiro, admin-congregacao |
| asset.create | admin-igreja, secretario, tesoureiro |
| asset.edit | admin-igreja, secretario, tesoureiro |
| asset.delete | admin-igreja |
Registrar movimentações exige asset.edit. Visualizar o histórico exige asset.view.