From a2c78d3a00c569a37ab93f65b58a11ba3519b596 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Wed, 5 Nov 2025 16:46:43 +0900 Subject: (김준회) 실사의뢰/실사재의뢰 누락된 userId 추가해서 pendingActions에 추가하도록 변경 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/approval-log/service.ts | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'lib/approval-log/service.ts') diff --git a/lib/approval-log/service.ts b/lib/approval-log/service.ts index 4d1ad7f8..5690e0f9 100644 --- a/lib/approval-log/service.ts +++ b/lib/approval-log/service.ts @@ -13,6 +13,7 @@ import { import db from '@/db/db'; import { approvalLogs } from '@/db/schema/knox/approvals'; +import { pendingActions } from '@/db/schema/knox/pending-actions'; import { filterColumns } from '@/lib/filter-columns'; // --------------------------------------------- @@ -198,3 +199,61 @@ export async function getApprovalLogListAction(input: ListInput) { }; } } + +// ---------------------------------------------------- +// Get approval log detail with pending action +// ---------------------------------------------------- +export type PendingAction = typeof pendingActions.$inferSelect; + +export interface ApprovalLogDetail { + approvalLog: ApprovalLog; + pendingAction: PendingAction | null; +} + +export async function getApprovalLogDetail(apInfId: string): Promise { + try { + // approvalLog 조회 + const approvalLog = await getApprovalLog(apInfId); + if (!approvalLog) { + return null; + } + + // pendingAction 조회 + const [pendingAction] = await db + .select() + .from(pendingActions) + .where(eq(pendingActions.apInfId, apInfId)) + .limit(1); + + return { + approvalLog, + pendingAction: pendingAction || null, + }; + } catch (error) { + console.error('Error fetching approval log detail:', error); + return null; + } +} + +// ---------------------------------------------------- +// Server Action for getting approval log detail +// ---------------------------------------------------- +export async function getApprovalLogDetailAction(apInfId: string) { + try { + const data = await getApprovalLogDetail(apInfId); + if (!data) { + return { + success: false, + error: '결재 로그를 찾을 수 없습니다.', + data: null, + }; + } + return { success: true, data }; + } catch (error) { + return { + success: false, + error: error instanceof Error ? error.message : '결재 로그 상세 조회에 실패했습니다.', + data: null, + }; + } +} -- cgit v1.2.3