giftcon_dev/app/Repositories/Payments/GcPinIssueRepository.php
2026-03-06 15:48:44 +09:00

44 lines
1.2 KiB
PHP

<?php
namespace App\Repositories\Payments;
use Illuminate\Support\Facades\DB;
final class GcPinIssueRepository
{
public function findByOrderItemId(int $orderItemId): ?object
{
return DB::table('gc_pin_issues')
->where('order_item_id', $orderItemId)
->first();
}
public function findByOrderId(int $orderId): array
{
$rows = DB::table('gc_pin_issues')
->where('order_id', $orderId)
->orderBy('id', 'asc')
->get();
return array_map(fn ($r) => (array)$r, $rows->all());
}
public function insert(array $data): int
{
return (int) DB::table('gc_pin_issues')->insertGetId($data);
}
public function markOpened(int $id, string $now, array $logs, ?string $reason = null): void
{
DB::table('gc_pin_issues')
->where('id', $id)
->update([
'opened_at' => $now,
'cancel_status' => 'LOCKED',
'cancel_locked_reason' => $reason ?? '핀 오픈 완료',
'issue_logs_json' => json_encode($logs, JSON_UNESCAPED_UNICODE),
'updated_at' => $now,
]);
}
}