summaryrefslogtreecommitdiff
path: root/lib/swp/project-utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/swp/project-utils.ts')
-rw-r--r--lib/swp/project-utils.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/swp/project-utils.ts b/lib/swp/project-utils.ts
new file mode 100644
index 00000000..682c8da0
--- /dev/null
+++ b/lib/swp/project-utils.ts
@@ -0,0 +1,47 @@
+// lib/swp/project-utils.ts
+import db from "@/db/db"
+import { projects } from "@/db/schema"
+import { eq } from "drizzle-orm"
+
+/**
+ * 프로젝트 코드(PROJ_NO)로 프로젝트 ID 조회
+ *
+ * @param projectCode - 프로젝트 코드 (PROJ_NO)
+ * @returns 프로젝트 ID 또는 null
+ */
+export async function getProjectIdByCode(projectCode: string): Promise<number | null> {
+ try {
+ const [project] = await db
+ .select({ id: projects.id })
+ .from(projects)
+ .where(eq(projects.code, projectCode))
+ .limit(1)
+
+ return project?.id || null
+ } catch (error) {
+ console.error(`❌ 프로젝트 ID 조회 실패 (코드: ${projectCode}):`, error)
+ return null
+ }
+}
+
+/**
+ * 프로젝트 코드로 프로젝트 전체 정보 조회
+ *
+ * @param projectCode - 프로젝트 코드 (PROJ_NO)
+ * @returns 프로젝트 정보 또는 null
+ */
+export async function getProjectByCode(projectCode: string) {
+ try {
+ const [project] = await db
+ .select()
+ .from(projects)
+ .where(eq(projects.code, projectCode))
+ .limit(1)
+
+ return project || null
+ } catch (error) {
+ console.error(`❌ 프로젝트 정보 조회 실패 (코드: ${projectCode}):`, error)
+ return null
+ }
+}
+