| 1234567891011121314151617181920212223242526272829303132 |
- <?php
- declare(strict_types=1);
- namespace app\miniapi\service;
- use app\miniapi\model\MiniEnterpriseBalance;
- final class BalanceService
- {
- public static function cents(int $enterprise): int
- {
- return (int) (MiniEnterpriseBalance::query()->where('enterprise_id', $enterprise)->value('balance_cents') ?? 0);
- }
- public static function locked(int $enterprise): MiniEnterpriseBalance
- {
- $balance = MiniEnterpriseBalance::query()->where('enterprise_id', $enterprise)->lockForUpdate()->first();
- if ($balance) {
- return $balance;
- }
- MiniEnterpriseBalance::query()->insert([
- 'enterprise_id' => $enterprise,
- 'balance_cents' => 0,
- 'created_at' => date('Y-m-d H:i:s'),
- 'updated_at' => date('Y-m-d H:i:s'),
- ]);
- return MiniEnterpriseBalance::query()->where('enterprise_id', $enterprise)->lockForUpdate()->firstOrFail();
- }
- }
|