NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Requests for Laravel

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ĺpecTypPoznámka
statusstring(16)Predvolene New.
author_type / author_idmorph, nullableAutor; stĺpec id sa riadi nastavením key_type.
typestring, nullableVlastné zatriedenie, napr. Claim alebo AccessRequest.
titlestring, nullableKrátky nadpis.
descriptiontext, nullablePodrobný text.
metajson, nullableVoľné meta údaje, castované na Collection.
require_approvals_fromjson, nullableZáznam kľúčov deklarovaných schvaľovateľov, castovaný na Collection.
expires_attimestamp, 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 kryptomien

Odoslaní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.