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

Modely s kreditmi

Implementujte na ľubovoľnom Eloquent modeli rozhranie Creditable a použite trait HasCredits. Trait poskytuje všetky metódy, ktoré rozhranie deklaruje:

use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Credits\Interfaces\Creditable;
use RoundlyConsulting\Credits\Traits\HasCredits;

final class User extends Model implements Creditable
{
    use HasCredits;
}

Rozhranie nevynechávajte. Každé API prijíma vlastníka ako Model&Creditable, takže model, ktorý používa len trait, zlyhá na TypeError hneď pri prvom volaní (statická analýza to odhalí ešte skôr) a credits:modify každú entitu bez Creditable preskočí.

Akýkoľvek model, nielen používatelia

Kredity sa pripájajú polymorfne, takže tímy, organizácie, projekty či zariadenia môžu mať v tej istej tabuľke každý vlastný zostatok:

final class Team extends Model implements Creditable
{
    use HasCredits;
}

Credits::for($team)->add(5000, 'prepaid API calls');
Credits::for($team)->balance();         // 5000
$team->creditsBalance();                // 5000 — the same read through the trait

Čo trait pridáva

MetódaVraciaÚčel
credits()MorphManyVšetky záznamy knihy pohybov, ktoré entita vlastní.
modifyCredits($amount, $description, $meta, $allowOverdraft, $bucket)CreditPridá pripísanie (kladné) alebo odpis (záporné).
setCreditsTo($amount, $description, $meta, $allowOverdraft, $bucket)?CreditZaznamená rozdiel k presnému zostatku; null, ak sa nič nemení.
creditsBalance($at, $bucket)intZostatok jednej skupiny, voliteľne k danému okamihu.
hasCredits($amount = 1, $at, $bucket)boolZostatok je aspoň $amount.
creditsBalanceForBuckets($buckets, $at)intSúčet uvedených skupín.
totalCreditsBalance($at)intSúčet všetkých skupín.
displayCredits($amount, $scale, $rounding)stringĽubovoľné celé číslo ako desatinný reťazec bez lokalizácie.
displayCreditsBalance($bucket, $scale, $rounding, $at)stringZostatok skupiny ako desatinný reťazec bez lokalizácie.
creditsCurrency($bucket)?CurrencyMena skupiny z money, alebo null pre bežné kredity.
creditsBalanceMoney($bucket, $at)MoneyZostatok skupiny v mene ako Money.
modifyCreditsMoney($amount, $description, $meta, $allowOverdraft, $bucket)CreditPripíše alebo odpíše Money v mene skupiny.
formatCreditsBalance($bucket, $locale)stringZostatok skupiny v mene cez lokalizovaný formátovač money.

Každé čítanie aj zápis prijíma voliteľnú skupinu; bez nej sa použije nakonfigurovaná default_bucket. Každé čítanie prijíma voliteľný okamih ($at, ľubovoľný CarbonInterface). Každá metóda je skratkou pre to isté volanie cez Credits::for($this) — pozrite Fasáda Credits.

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.