summaryrefslogtreecommitdiff
path: root/lib/projects
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-09-15 01:23:00 +0000
committerjoonhoekim <26rote@gmail.com>2025-09-15 01:23:00 +0000
commite7818a457371849e29519497ebf046f385f05ab6 (patch)
tree9bf08ba1b31a512c481dc521c9dd7c90091a75b8 /lib/projects
parent3f293c90beb58ce206a66ff444d7acfc41b56429 (diff)
(김준회) AVL 기능 구현 1차 및 벤더풀 E/B 구분 개선
Diffstat (limited to 'lib/projects')
-rw-r--r--lib/projects/service.ts24
1 files changed, 22 insertions, 2 deletions
diff --git a/lib/projects/service.ts b/lib/projects/service.ts
index fe1052f6..acf8b2f5 100644
--- a/lib/projects/service.ts
+++ b/lib/projects/service.ts
@@ -5,7 +5,7 @@ import db from "@/db/db";
import { unstable_cache } from "@/lib/unstable-cache";
import { filterColumns } from "@/lib/filter-columns";
import { tagTypeClassFormMappings } from "@/db/schema/vendorData";
-import { asc, desc, ilike, inArray, and, gte, lte, not, or } from "drizzle-orm";
+import { asc, desc, ilike, inArray, and, gte, lte, not, or, eq } from "drizzle-orm";
import { countProjectLists, selectProjectLists } from "./repository";
import { projects } from "@/db/schema";
import { GetProjectListsSchema } from "./validation";
@@ -84,4 +84,24 @@ export async function getProjectLists(input: GetProjectListsSchema) {
tags: ["project-lists"],
}
)();
- } \ No newline at end of file
+ }
+
+export async function getProjectInfoByProjectCode(projectCode: string) {
+ const projectInfo = await db.select().from(projects).where(eq(projects.code, projectCode)).limit(1);
+
+ if (!projectInfo || projectInfo.length === 0) {
+ throw new Error(`프로젝트 코드 "${projectCode}"를 찾을 수 없습니다.`);
+ }
+
+ const projectInfoForAvl = {
+ // 프로젝트코드
+ projectCode: projectInfo[0].code,
+ // 프로젝트명
+ projectName: projectInfo[0].name,
+ // 선종
+ shipType: projectInfo[0].SKND || undefined,
+ // H/T 구분
+ projectHtDivision: projectInfo[0].type || undefined,
+ };
+ return projectInfoForAvl;
+} \ No newline at end of file