refactor: update Prisma schema to enhance data models

- Added BC_QM_BUILDER, BC_QM_TERMS, BC_QM_USER, IF_PERSON_OFFICE_MAPPING, MS_CUST_AGENCY_STOREID, MS_CUST_H, MS_CUST_PERSON, MS_CUST_STOREID, MS_CUST_STOREID_ADDITNL models to the Prisma schema for improved data structure.
- Reintroduced CONSTRUCTION_POINT_ID and SUBMISSION_TARGET_NM fields in SD_SURVEY_SALES_BASIC_INFO model for consistency and enhanced data representation.
This commit is contained in:
yoosangwook 2025-06-02 11:34:25 +09:00
parent ca45c68b9d
commit 69571e86b8
5 changed files with 471 additions and 2 deletions

View File

@ -13,7 +13,6 @@ model SD_SURVEY_SALES_BASIC_INFO {
REPRESENTATIVE String @db.NVarChar(200)
STORE String? @db.NVarChar(200)
CONSTRUCTION_POINT String? @db.NVarChar(200)
CONSTRUCTION_POINT_ID String? @db.NVarChar(200)
INVESTIGATION_DATE String? @db.NVarChar(10)
BUILDING_NAME String? @db.NVarChar(200)
CUSTOMER_NAME String? @db.NVarChar(200)
@ -23,11 +22,12 @@ model SD_SURVEY_SALES_BASIC_INFO {
SUBMISSION_STATUS Boolean @default(false)
SUBMISSION_DATE DateTime? @db.Date
SUBMISSION_TARGET_ID String? @db.NVarChar(200)
SUBMISSION_TARGET_NM String? @db.NVarChar(200)
REG_DT DateTime @default(now())
UPT_DT DateTime @updatedAt
REPRESENTATIVE_ID String? @db.NVarChar(100)
STORE_ID String? @db.NVarChar(100)
CONSTRUCTION_POINT_ID String? @db.NVarChar(200)
SUBMISSION_TARGET_NM String? @db.NVarChar(200)
DETAIL_INFO SD_SURVEY_SALES_DETAIL_INFO?
}
@ -179,3 +179,304 @@ model MS_USR_TRK {
REG_DT DateTime @default(now())
DATA String? @db.NVarChar(200)
}
model BC_QM_BUILDER {
COMP_CD String @db.NVarChar(4)
BUILDER_NO String @db.NVarChar(50)
AGENCY_STORE_ID String @db.NVarChar(100)
BUILDER_NM String @db.NVarChar(100)
BUILDER_ID String? @db.NVarChar(100)
ZIP_NO String? @db.NVarChar(7)
PRFT_JP String? @db.NVarChar(100)
MNCP_NM String? @db.NVarChar(100)
ADDR_NM String? @db.NVarChar(200)
ADDR_DTL String? @db.NVarChar(200)
RECEIVER_NM String? @db.NVarChar(100)
RECEIVER_CONTACT_NO String? @db.NVarChar(100)
USE_YN String? @db.NVarChar(1)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
BC_QM_USER BC_QM_USER[]
@@id([COMP_CD, BUILDER_NO], map: "PK_BC_QM_BUILDER")
}
model BC_QM_TERMS {
COMP_CD String @db.NVarChar(4)
TERMS_NO Decimal @db.Decimal(18, 0)
VER_NO String @db.NVarChar(3)
VER_SUB_NO String @db.NVarChar(3)
OPERTN_DT DateTime @db.Date
TERMS_CTNT String @db.NVarChar(Max)
DEL_YN String? @db.NVarChar(1)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
BC_QM_USER BC_QM_USER[]
@@id([TERMS_NO, COMP_CD], map: "PK_BC_QM_TERMS")
}
model BC_QM_USER {
COMP_CD String @db.NVarChar(4)
USER_ID String @db.NVarChar(50)
AGENCY_STORE_ID String @db.NVarChar(100)
USER_NM String @db.NVarChar(100)
USER_AUTH_CD String @db.NVarChar(10)
EMAIL String? @db.NVarChar(100)
PSTN_NM String? @db.NVarChar(100)
TEL_NO String? @db.NVarChar(100)
MOBILE_NO String? @db.NVarChar(100)
FAX_NO String? @db.NVarChar(100)
LAST_LOGIN_DT DateTime? @db.DateTime
PWD String @db.NVarChar(100)
PWD_INIT_YN String? @default("N", map: "DF__BC_QM_USE__PWD_I__42E1EEFE") @db.NVarChar(1)
LOGIN_FAIL_CNT Decimal? @default(0, map: "DF__BC_QM_USE__LOGIN__43D61337") @db.Decimal(18, 0)
LAST_LOGIN_FAIL_DT DateTime? @db.DateTime
LAST_PWD_UPT_DT DateTime? @db.DateTime
BUILDER_NO String? @db.NVarChar(50)
ZIP_NO String? @db.NVarChar(7)
PRFT_JP String? @db.NVarChar(100)
MNCP_NM String? @db.NVarChar(100)
ADDR_NM String? @db.NVarChar(200)
TERMS_AGREE_YN String? @default("N", map: "DF__BC_QM_USE__TERMS__44CA3770") @db.NVarChar(1)
TERMS_AGREE_DT DateTime? @db.DateTime
AGREE_TERMS_NO Decimal? @db.Decimal(18, 0)
STAT_CD String? @db.NVarChar(1)
DEL_YN String? @db.NVarChar(1)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
USER_NM_KANA String? @db.NVarChar(50)
BC_QM_BUILDER BC_QM_BUILDER? @relation(fields: [COMP_CD, BUILDER_NO], references: [COMP_CD, BUILDER_NO], onUpdate: NoAction, map: "FK_BC_QM_USER_01")
BC_QM_TERMS BC_QM_TERMS? @relation(fields: [AGREE_TERMS_NO, COMP_CD], references: [TERMS_NO, COMP_CD], onUpdate: NoAction, map: "FK_BC_QM_USER_02")
@@id([COMP_CD, USER_ID], map: "PK_BC_QM_USER")
}
model IF_PERSON_OFFICE_MAPPING {
IF_SEQ Decimal @id(map: "PK_IF_PERSON_OFFICE_MAPPING") @db.Decimal(22, 0)
SEQ Int?
LIFNR String? @db.NVarChar(10)
VKBUR String? @db.NVarChar(4)
IF_DT DateTime? @db.DateTime
IF_STS String? @db.NVarChar(1)
IF_MSG String? @db.NVarChar(200)
}
model MS_CUST_AGENCY_STOREID {
COMP_CD String @db.NVarChar(4)
STORE_ID String @db.NVarChar(100)
AGENCY_STORE_ID String @db.NVarChar(100)
AGENCY_QCAST_NM String? @db.NVarChar(100)
PLAN_REQ_SUBMIT_YN String? @default("N", map: "DF__MS_CUST_A__PLAN___3B40CD36") @db.NVarChar(1)
DEL_YN String? @default("N", map: "DF__MS_CUST_A__DEL_Y__3C34F16F") @db.NVarChar(1)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
EMAIL String? @db.NVarChar(100)
REMARK String? @db.NVarChar(Max)
BDL_TP_CD String? @db.NVarChar(10)
@@id([COMP_CD, AGENCY_STORE_ID], map: "PK_MS_CUST_AGENCY_STOREID")
}
model MS_CUST_H {
COMP_CD String @db.NVarChar(4)
CUST_CD String @db.NVarChar(10)
ACCOUNT_GR String? @db.NVarChar(4)
CUST_NM String? @db.NVarChar(70)
HAUS_NO String? @db.NVarChar(10)
POST_CD String? @db.NVarChar(10)
CITY_CD String? @db.NVarChar(12)
CITY_NM String? @db.NVarChar(40)
COUNTRY_CD String? @db.NVarChar(4)
REGION_CD String? @db.NVarChar(4)
STREET_NM String? @db.NVarChar(60)
STREET_NM2 String? @db.NVarChar(60)
STREET_NM3 String? @db.NVarChar(60)
STREET_NM4 String? @db.NVarChar(60)
STREET_NM5 String? @db.NVarChar(60)
TIME_ZONE String? @db.NVarChar(10)
TRANSP_ZONE String? @db.NVarChar(10)
LANG_CD String? @db.NVarChar(2)
TEL_NO String? @db.NVarChar(30)
TEL_NO_EXT String? @db.NVarChar(10)
MOBILE_NO String? @db.NVarChar(30)
FAX_NO String? @db.NVarChar(30)
FAX_NO_EXT String? @db.NVarChar(10)
EMAIL String? @db.NVarChar(100)
INDUSTRY_CD String? @db.NVarChar(4)
VAT_REG_NO String? @db.NVarChar(20)
LOCAT_NO1 Decimal? @db.Decimal(7, 0)
LOCAT_NO2 Decimal? @db.Decimal(5, 0)
RESI_CD String? @db.NVarChar(4)
UTIL_CD String? @db.NVarChar(4)
MARK_PF String? @db.NVarChar(4)
INVS_CD String? @db.NVarChar(4)
PRMT_CD String? @db.NVarChar(4)
SVC_PR_CD String? @db.NVarChar(4)
ENG_CNSL_CD String? @db.NVarChar(4)
RECON_ACC_CD String? @db.NVarChar(20)
SORT_KEY String? @db.NVarChar(12)
CASH_MGMT_GR String? @db.NVarChar(12)
INTEREST_IND_CD String? @db.NVarChar(12)
TERM_PAY_CD String? @db.NVarChar(12)
PAY_HIST_YN String? @db.NVarChar(2)
DUN_PROC_CD String? @db.NVarChar(4)
DUN_BLOCK_CD String? @db.NVarChar(1)
DUN_LEVEL_CD Decimal? @db.Decimal(1, 0)
POLICY_NO String? @db.NVarChar(20)
INSURED_AMT Decimal? @db.Decimal(13, 3)
VAL_TO_DATE DateTime? @db.Date
DEDUCT_RATE Decimal? @db.Decimal(9, 0)
APPLIED_INSURA Decimal? @db.Decimal(13, 3)
EASY_NO String? @db.NVarChar(20)
APPLY_DATE DateTime? @db.Date
EXPIRE_DATE DateTime? @db.Date
ADD_TXT1 String? @db.NVarChar(400)
ADD_TXT2 String? @db.NVarChar(400)
REF_PS_ID String? @db.NVarChar(20)
CUST_COMP_CD String? @db.NVarChar(4)
CUST_TEXT String? @db.NVarChar(Max)
CUST_GRADE String? @db.NVarChar(2)
INCOME_TAX_NO String? @db.NVarChar(20)
STAT_CD String? @db.NVarChar(2)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
QSP_ACCOUNT_GR String? @db.NVarChar(4)
BDL_TP_CD String? @db.NVarChar(10)
BDL_SUB_TP_CD String? @db.NVarChar(100)
MS_CUST_STOREID MS_CUST_STOREID[]
@@id([COMP_CD, CUST_CD], map: "PK_MS_CUST_H")
}
model MS_CUST_PERSON {
SEQ Decimal @db.Decimal(22, 0)
COMP_CD String @db.NVarChar(4)
CUST_CD String @db.NVarChar(10)
EOS_LOGIN_ID String? @db.NVarChar(100)
EOS_PWD String? @db.NVarChar(100)
NAME String? @db.NVarChar(50)
PSTN_NM String? @db.NVarChar(50)
EMAIL String? @db.NVarChar(100)
TEL_NO String? @db.NVarChar(100)
AUTHORITY String @db.NVarChar(1)
DEL_YN String? @default("N", map: "DF__MS_CUST_P__DEL_Y__339FAB6E") @db.NVarChar(1)
LOGIN_DT DateTime? @db.DateTime
PWD_INIT_YN String? @db.NVarChar(1)
LOGIN_FAIL_CNT Decimal? @db.Decimal(18, 0)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
LOGIN_FAIL_DT DateTime? @db.DateTime
PLAN_REQ_AUTH String? @default("N", map: "DF__MS_CUST_P__PLAN___3493CFA7") @db.NVarChar(1)
PRICE_VIEW_STAT_CD String? @default("S", map: "DF__MS_CUST_P__PRICE__3587F3E0") @db.NVarChar(10)
SD_SUBMIT_YN String? @default("N", map: "DF__MS_CUST_P__SD_SU__367C1819") @db.NVarChar(1)
STORE_ID String? @db.NVarChar(100)
USER_NM_KANA String? @db.NVarChar(50)
FAX String? @db.NVarChar(100)
PLAN_MAIL_RCV_YN String? @default("Y", map: "DF__MS_CUST_P__PLAN___37703C52") @db.NVarChar(1)
SD_MAIL_RCV_YN String? @default("Y", map: "DF__MS_CUST_P__SD_MA__3864608B") @db.NVarChar(1)
@@id([SEQ, COMP_CD, CUST_CD], map: "PK_MS_CUST_PERSON")
}
model MS_CUST_STOREID {
COMP_CD String @db.NVarChar(4)
STORE_ID String @db.NVarChar(100)
CUST_CD String @db.NVarChar(10)
REPRESENTATIVE_STORE_YN String? @db.NVarChar(1)
SP_MODULE_PRICE_SEQ Decimal? @db.Decimal(20, 0)
SP_MODULE_PRICE_EXP_FR_DT DateTime? @db.Date
SP_MODULE_PRICE_EXP_TO_DT DateTime? @db.Date
SP_BOS_PRICE_SEQ Decimal? @db.Decimal(20, 0)
SP_BOS_PRICE_EXP_FR_DT DateTime? @db.Date
SP_BOS_PRICE_EXP_TO_DT DateTime? @db.Date
PKG_PRICE_RANK String? @default("C", map: "DF__MS_CUST_S__PKG_P__29221CFB") @db.NVarChar(3)
SP_PKG_PRICE Decimal? @db.Decimal(13, 1)
SP_PKG_PRICE_EXP_FR_DT DateTime? @db.Date
SP_PKG_PRICE_EXP_TO_DT DateTime? @db.Date
DEL_YN String? @default("N", map: "DF__MS_CUST_S__DEL_Y__2A164134") @db.NVarChar(1)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
MOVE_DT DateTime? @db.DateTime
MOVE_ID String? @db.NVarChar(50)
STORE_QCAST_NM String? @db.NVarChar(100)
PLAN_REQ_AUTH String? @default("N", map: "DF__MS_CUST_S__PLAN___2B0A656D") @db.NVarChar(1)
PKG_EXCEPT_YN String? @default("N", map: "DF__MS_CUST_S__PKG_E__2BFE89A6") @db.NVarChar(1)
MODULE_PRICE_RANK String? @default("C", map: "DF__MS_CUST_S__MODUL__2CF2ADDF") @db.NVarChar(20)
BOS_PRICE_RANK String? @default("A", map: "DF__MS_CUST_S__BOS_P__2DE6D218") @db.NVarChar(20)
PLAN_REQ_SUBMIT_YN String? @default("N", map: "DF__MS_CUST_S__PLAN___2EDAF651") @db.NVarChar(1)
QSP_SUBAL_YN String? @default("N", map: "DF__MS_CUST_S__QSP_S__2FCF1A8A") @db.NVarChar(1)
MS_CUST_H MS_CUST_H @relation(fields: [COMP_CD, CUST_CD], references: [COMP_CD, CUST_CD], onUpdate: NoAction, map: "MS_CUST_STOREID_FK")
@@id([COMP_CD, STORE_ID], map: "PK_MS_CUST_STOREID")
@@index([COMP_CD, CUST_CD], map: "IDX_MS_CUST_STOREID_COMP_CD_01")
}
model MS_CUST_STOREID_ADDITNL {
COMP_CD String @db.NVarChar(20)
STORE_ID String @db.NVarChar(100)
REQ_CUST_CD String? @db.NVarChar(10)
REQ_STORE_QCAST_NM String? @db.NVarChar(100)
STORE_QCAST_NM_KANA String? @db.NVarChar(100)
BIZ_NO String? @db.NVarChar(20)
POST_CD String? @db.NVarChar(10)
ADDR String? @db.NVarChar(255)
TEL_NO String? @db.NVarChar(100)
FAX String? @db.NVarChar(100)
APPR_DT DateTime? @db.DateTime
APPR_ID String? @db.NVarChar(50)
APPR_STAT_CD String? @db.NVarChar(10)
APPR_REMARKS String? @db.NVarChar(300)
REQ_APPR_DT DateTime? @db.DateTime
PAY_TERMS_CD String? @db.NVarChar(10)
FIRST_STORE_ID String? @db.NVarChar(100)
PARENT_STORE_ID String? @db.NVarChar(100)
STORE_LVL Int?
KAM_ID String? @db.NVarChar(50)
QT_COMP_NM String? @db.NVarChar(100)
QT_POST_CD String? @db.NVarChar(10)
QT_ADDR String? @db.NVarChar(255)
QT_TEL_NO String? @db.NVarChar(100)
QT_FAX String? @db.NVarChar(100)
QT_E_MAIL String? @db.NVarChar(100)
ORD_DELI_TARGET String? @db.NVarChar(100)
ORD_DELI_COMP_NM String? @db.NVarChar(100)
ORD_DELI_COMP_USER_NM String? @db.NVarChar(40)
ORD_DELI_TEL_NO String? @db.NVarChar(100)
ORD_DELI_POST_CD String? @db.NVarChar(10)
ORD_DELI_REMARKS String? @db.NVarChar(200)
GUAR_STORE_NM String? @db.NVarChar(100)
GUAR_STORE_POST_CD String? @db.NVarChar(10)
GUAR_STORE_ADDR String? @db.NVarChar(255)
GUAR_TEL_NO String? @db.NVarChar(100)
NORTH_MODULE_YN String? @default("N", map: "DF__MS_CUST_S__NORTH__17036CC0") @db.NVarChar(1)
DEL_YN String? @default("N", map: "DF__MS_CUST_S__DEL_Y__17F790F9") @db.NVarChar(1)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
REQ_MODULE_PRICE_RANK String? @db.NVarChar(20)
REQ_BOS_PRICE_RANK String? @db.NVarChar(20)
REQ_PKG_PRICE_RANK String? @db.NVarChar(3)
REQ_BDL_TP_CD String? @db.NVarChar(10)
REQ_BDL_SUB_TP_CD String? @db.NVarChar(100)
REMARK String? @db.NVarChar(500)
NORTH_MODULE_UPT_DT DateTime? @db.DateTime
NORTH_MODULE_UPT_ID String? @db.NVarChar(50)
@@id([COMP_CD, STORE_ID], map: "PK_MS_CUST_STOREID_ADDITNL")
}

View File

@ -0,0 +1,41 @@
import { prisma } from '@/libs/prisma'
import { NextRequest, NextResponse } from 'next/server'
type AdminSubPerson = {
storeId: string
userId: string
eMail: string
authority: string
}
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url)
const id = searchParams.get('id')
const query = `
OPEN SYMMETRIC KEY SYMMETRICKEY DECRYPTION BY CERTIFICATE CERTI_QSPJP;
SELECT
MCS.STORE_ID
, MCP.EOS_LOGIN_ID AS USER_ID
, CONVERT(NVARCHAR(100), DecryptByKey(MCP.EMAIL)) AS E_MAIL
, MCP.AUTHORITY
FROM MS_CUST_STOREID MCS WITH(NOLOCK)
LEFT OUTER JOIN MS_CUST_PERSON MCP WITH(NOLOCK)
ON MCS.COMP_CD = MCP.COMP_CD
AND MCS.STORE_ID = MCP.STORE_ID
AND MCP.DEL_YN = 'N'
WHERE MCS.COMP_CD = '5200'
AND MCS.STORE_ID = (SELECT STORE_ID FROM MS_CUST_AGENCY_STOREID WHERE AGENCY_STORE_ID = '201T01' AND DEL_YN = 'N')
AND MCP.EMAIL IS NOT NULL
AND MCS.DEL_YN = 'N';
CLOSE SYMMETRIC KEY SYMMETRICKEY;
`
const suitable: AdminSubPerson[] = await prisma.$queryRawUnsafe(query)
return NextResponse.json({ message: 'Hello, world!' })
} catch (error) {
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
}
}

View File

@ -0,0 +1,46 @@
import { prisma } from '@/libs/prisma'
import { NextRequest, NextResponse } from 'next/server'
type SuperPerson = {
storeId: string
salesOfficeCd: string
fromEmail: string
toEmail: string
}
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url)
const id = searchParams.get('id')
const query = `
OPEN SYMMETRIC KEY SYMMETRICKEY DECRYPTION BY CERTIFICATE CERTI_QSPJP;
SELECT
MCSA.STORE_ID
, BCL.CODE AS SALES_OFFICE_CD
, REF_CHR1 AS FROM_E_MAIL
, REF_CHR2 AS TO_E_MAIL
FROM MS_CUST_STOREID_ADDITNL MCSA WITH(NOLOCK)
LEFT OUTER JOIN IF_PERSON_OFFICE_MAPPING IPOM WITH(NOLOCK)
ON MCSA.KAM_ID = IPOM.LIFNR
AND IF_STS = 'R'
AND VKBUR IS NOT NULL
AND VKBUR != ''
INNER JOIN BC_COMM_L BCL WITH(NOLOCK)
ON BCL.CODE = IPOM.VKBUR
AND BCL.HEAD_CD = '103200'
AND BCL.DEL_YN = 'N'
WHERE MCSA.COMP_CD = '5200'
AND MCSA.STORE_ID = 'A03'
AND MCSA.DEL_YN = 'N'
;
CLOSE SYMMETRIC KEY SYMMETRICKEY;
`
const suitable: SuperPerson[] = await prisma.$queryRawUnsafe(query)
return NextResponse.json({ message: 'Hello, world!' })
} catch (error) {
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
}
}

View File

@ -0,0 +1,42 @@
import { prisma } from '@/libs/prisma'
import { NextRequest, NextResponse } from 'next/server'
type BuilderPerson = {
agencyStoreId: string
userId: string
eMail: string
userAuthCd: string
}
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url)
const id = searchParams.get('id')
const query = `
OPEN SYMMETRIC KEY SYMMETRICKEY DECRYPTION BY CERTIFICATE CERTI_QSPJP;
SELECT
MCAS.AGENCY_STORE_ID
, BQU.USER_ID
, CONVERT(NVARCHAR(100), DecryptByKey(BQU.EMAIL)) AS E_MAIL
, BQU.USER_AUTH_CD
FROM MS_CUST_AGENCY_STOREID MCAS WITH(NOLOCK)
LEFT OUTER JOIN BC_QM_USER BQU WITH(NOLOCK)
ON MCAS.COMP_CD = BQU.COMP_CD
AND MCAS.AGENCY_STORE_ID = BQU.AGENCY_STORE_ID
AND MCAS.DEL_YN = 'N'
WHERE MCAS.COMP_CD = '5200'
AND MCAS.AGENCY_STORE_ID = '201T01'
AND BQU.EMAIL IS NOT NULL
AND BQU.USER_AUTH_CD != 'B'
AND MCAS.DEL_YN = 'N';
CLOSE SYMMETRIC KEY SYMMETRICKEY;
`
const suitable: BuilderPerson[] = await prisma.$queryRawUnsafe(query)
return NextResponse.json({ message: 'Hello, world!' })
} catch (error) {
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
}
}

View File

@ -0,0 +1,39 @@
import { prisma } from '@/libs/prisma'
import { NextRequest, NextResponse } from 'next/server'
type SuperPerson = {
storeId: string
userId: string
eMail: string
}
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url)
const id = searchParams.get('id')
const query = `
OPEN SYMMETRIC KEY SYMMETRICKEY DECRYPTION BY CERTIFICATE CERTI_QSPJP;
SELECT
MCSA.STORE_ID
, BU.USER_ID
, CONVERT(NVARCHAR(100), DecryptByKey(BU.E_MAIL)) AS E_MAIL
FROM MS_CUST_STOREID_ADDITNL MCSA WITH(NOLOCK)
LEFT OUTER JOIN BC_USER bu WITH(NOLOCK)
ON MCSA.COMP_CD = BU.COMP_CD
AND MCSA.KAM_ID = BU.KAM_ID
AND BU.STAT_CD = 'A'
AND BU.DEL_YN = 'N'
WHERE MCSA.COMP_CD = '5200'
AND MCSA.STORE_ID = 'A03'
AND MCSA.DEL_YN = 'N';
CLOSE SYMMETRIC KEY SYMMETRICKEY;
`
const suitable: SuperPerson[] = await prisma.$queryRawUnsafe(query)
return NextResponse.json({ message: 'Hello, world!' })
} catch (error) {
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
}
}