diff options
Diffstat (limited to 'lib/items/service.ts')
| -rw-r--r-- | lib/items/service.ts | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/items/service.ts b/lib/items/service.ts index 1eab3e25..f4865cfa 100644 --- a/lib/items/service.ts +++ b/lib/items/service.ts @@ -457,3 +457,35 @@ export async function searchItemsForPQ(query: string): Promise<{ itemCode: strin return []; } } + + +export interface PackageItem { + packageCode: string; + description: string; + smCode: string | null; +} + +export async function getPackagesByProject(projectNo: string): Promise<PackageItem[]> { + try { + // selectDistinct를 사용하여 중복 제거 + const result = await db + .selectDistinct({ + packageCode: items.packageCode, + description: items.description, + smCode: items.smCode, + }) + .from(items) + .where(eq(items.ProjectNo, projectNo)) + .orderBy(items.packageCode); + + // null 값을 처리하고 타입을 정리 + return result.map(item => ({ + packageCode: item.packageCode, + description: item.description || item.packageCode, + smCode: item.smCode || null + })); + } catch (error) { + console.error("Failed to fetch packages:", error); + return []; + } +}
\ No newline at end of file |
