Základné pojmy
Žiadosť (Request)
RoundlyConsulting\Requests\Models\Request predstavuje žiadosť či prihlášku. Má polymorfného autora, enum Status, voľné meta údaje, záznam kľúčov deklarovaných schvaľovateľov require_approvals_from a voliteľný termín expires_at. Podporuje soft delete:
$request->status; // Status enum — New, Approved, Rejected, Cancelled, Expired
$request->author; // polymorphic author (MorphTo), nullable
$request->type; // e.g. 'Claim'
$request->title; // e.g. 'Expense reimbursement'
$request->description;
$request->meta; // Collection — free-form metadata
$request->require_approvals_from; // Collection — the declared approvers’ keys
$request->expires_at; // ?Carbon — the expiry deadline
$request->delete(); // soft delete (deleted_at)Stav (Status)
RoundlyConsulting\Requests\Enums\Status je string-backed enum s piatimi hodnotami. Poskytuje isOpen(), isTerminal() a canTransitionTo() plus spoločné pomocné metódy z enums-for-laravel (pozri Stavy a prechody):
use RoundlyConsulting\Requests\Enums\Status;
Status::New; // open — awaiting a decision
Status::Approved;
Status::Rejected;
Status::Cancelled;
Status::Expired;Schvaľovací engine
Request je subjektom schvaľovania — používa trait RequiresApproval z enginu. Deklarovaním schvaľovateľov (alebo stupňov, prípadne predvoľby workflowu) sa otvorí schvaľovacie kolo — ApprovalRequest v engine —, ktoré týchto schvaľovateľov menovite určí: rozhodnúť môžu len oni alebo ich zástupcovia. Kedy je podmienka splnená, určí jeho pravidlo. Listener SyncRequestStatusFromApproval premieta každé rozhodnutie enginu späť do stavu žiadosti, takže výsledok posunie žiadosť a spustí udalosti balíka bez ohľadu na to, akou cestou rozhodnutie prišlo.
Databázová schéma
Tabuľka requests, ktorú vytvorí publikovaná migrácia:
| Stĺpec | Typ | Poznámka |
|---|---|---|
status | string(16) | Predvolene New. |
author_type / author_id | morph, nullable | Autor; stĺpec id sa riadi nastavením key_type. |
type | string, nullable | Vlastné zatriedenie, napr. Claim alebo AccessRequest. |
title | string, nullable | Krátky nadpis. |
description | text, nullable | Podrobný text. |
meta | json, nullable | Voľné meta údaje, castované na Collection. |
require_approvals_from | json, nullable | Záznam kľúčov deklarovaných schvaľovateľov, castovaný na Collection. |
expires_at | timestamp, nullable, indexovaný | Termín expirácie. |
created_at / updated_at / deleted_at | časové pečiatky | Žiadosti podporujú soft delete. |
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.