From 58662400cb2698d1258625f0e6c742bafe5cda88 Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Tue, 29 Apr 2025 10:23:15 +0900 Subject: [PATCH] chore: Update environment configuration for API URL and enhance next.config.ts with rewrites and CORS headers --- .env.development | 3 + .env.local | 0 .env.production | 1 + next.config.ts | 29 +++++++++ prisma/schema.prisma | 110 ++++++++++++++++----------------- src/app/api/user/route.ts | 6 +- src/app/layout.tsx | 2 +- src/components/SurveySales.tsx | 10 +-- src/middleware.ts | 1 + 9 files changed, 99 insertions(+), 63 deletions(-) delete mode 100644 .env.local diff --git a/.env.development b/.env.development index e69de29..53e90fd 100644 --- a/.env.development +++ b/.env.development @@ -0,0 +1,3 @@ +# 모바일 디바이스로 로컬 서버 확인하려면 자신 IP 주소로 변경 +# 다시 로컬에서 개발할때는 localhost로 변경 +NEXT_PUBLIC_API_URL=http://localhost:3000 \ No newline at end of file diff --git a/.env.local b/.env.local deleted file mode 100644 index e69de29..0000000 diff --git a/.env.production b/.env.production index e69de29..f5f1630 100644 --- a/.env.production +++ b/.env.production @@ -0,0 +1 @@ +NEXT_PUBLIC_API_URL=http://172.30.1.35:3000 \ No newline at end of file diff --git a/next.config.ts b/next.config.ts index 9870c07..8304bcd 100644 --- a/next.config.ts +++ b/next.config.ts @@ -6,6 +6,35 @@ const nextConfig: NextConfig = { sassOptions: { includePaths: [path.join(__dirname, './src/styles')], }, + async rewrites() { + return [ + { + source: '/:path*', + destination: `${process.env.NEXT_PUBLIC_API_URL}/:path*`, + }, + ] + }, + async headers() { + return [ + { + source: '/api/:path*', + headers: [ + { + key: 'Access-Control-Allow-Origin', + value: '*', + }, + { + key: 'Access-Control-Allow-Methods', + value: 'GET, POST, PUT, DELETE, OPTIONS', + }, + { + key: 'Access-Control-Allow-Headers', + value: 'Content-Type, Authorization', + }, + ], + }, + ] + }, } export default nextConfig diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 8f9fa46..a58b277 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -95,111 +95,111 @@ model MS_SUITABLE { // 조사 매물 기본 정보 model SD_SERVEY_SALES_BASIC_INFO { //일련번호 - id Int @id @default(autoincrement()) + id Int @id @default(autoincrement()) //담당자명 - representative String @db.VarChar(200) + representative String @db.VarChar(200) //판매점 - store String? @db.VarChar(200) + store String? @db.VarChar(200) //시공점 - construction_point String? @db.VarChar(200) + construction_point String? @db.VarChar(200) //현재 조사일 - investigation_date String? @db.VarChar(10) + investigation_date String? @db.VarChar(10) //건물명 - building_name String? @db.VarChar(200) + building_name String? @db.VarChar(200) //고객명 - customer_name String? @db.VarChar(200) + customer_name String? @db.VarChar(200) //우편번호 - post_code String? @db.VarChar(10) + post_code String? @db.VarChar(10) //주소 - address String? @db.VarChar(200) + address String? @db.VarChar(200) //상세주소 - address_detail String? @db.VarChar(300) + address_detail String? @db.VarChar(300) //제출상태 - submission_status Boolean @default(false) + submission_status Boolean @default(false) //제출일 - submission_date DateTime? @db.Date + submission_date DateTime? @db.Date //상세정보 - detail_info SD_SERVEY_SALES_DETAIL_INFO @relation(fields: [detail_info_id], references: [id]) - detail_info_id Int @unique - created_at DateTime @default(now()) - updated_at DateTime @updatedAt + detail_info SD_SERVEY_SALES_DETAIL_INFO? + created_at DateTime @default(now()) + updated_at DateTime @updatedAt } // 조사 매물 전기 지붕 정보 model SD_SERVEY_SALES_DETAIL_INFO { //일련번호 - id Int @id @default(autoincrement()) + id Int @id @default(autoincrement()) //전기계약 용량 - contract_capacity String? @db.VarChar(20) + contract_capacity String? @db.VarChar(20) //전기 소매 회사 - retail_company String? @db.VarChar(100) + retail_company String? @db.VarChar(100) //전기 부대 설비 - supplementary_facilities Int? @db.Int + supplementary_facilities Int? @db.Int //전기 부대 설비 기타 - supplementary_facilities_etc String? @db.VarChar(200) + supplementary_facilities_etc String? @db.VarChar(200) //설치 희망 시스템 - installation_system Int? @db.Int + installation_system Int? @db.Int //설치 희망 시스템 기타 - installation_system_etc String? @db.VarChar(200) + installation_system_etc String? @db.VarChar(200) //건축 연수 - construction_year Int? @db.Int + construction_year Int? @db.Int //건축 연수 기타 - construction_year_etc String? @db.VarChar(200) + construction_year_etc String? @db.VarChar(200) //지붕재 - roof_material Int? @db.Int + roof_material Int? @db.Int //지붕재 기타 - roof_material_etc String? @db.VarChar(200) + roof_material_etc String? @db.VarChar(200) //지붕 모양 - roof_shape Int? @db.Int + roof_shape Int? @db.Int //지붕 모양 기타 - roof_shape_etc String? @db.VarChar(200) + roof_shape_etc String? @db.VarChar(200) //지붕 경사도 - roof_slope String? @db.VarChar(5) + roof_slope String? @db.VarChar(5) //주택 구조 - house_structure Int? @db.Int + house_structure Int? @db.Int //주택 구조 기타 - house_structure_etc String? @db.VarChar(200) + house_structure_etc String? @db.VarChar(200) //서까래 재질 - rafter_material Int? @db.Int + rafter_material Int? @db.Int //서까래 재질 기타 - rafter_material_etc String? @db.VarChar(200) + rafter_material_etc String? @db.VarChar(200) //서까래 크기 - rafter_size Int? @db.Int + rafter_size Int? @db.Int //서까래 크기 기타 - rafter_size_etc String? @db.VarChar(200) + rafter_size_etc String? @db.VarChar(200) //서까래 피치 - rafter_pitch Int? @db.Int + rafter_pitch Int? @db.Int //서까래 피치 기타 - rafter_pitch_etc String? @db.VarChar(200) + rafter_pitch_etc String? @db.VarChar(200) //서까래 방향 - rafter_direction Int? @db.Int + rafter_direction Int? @db.Int //노지판 종류 - open_field_plate_kind Int? @db.Int + open_field_plate_kind Int? @db.Int //노지판 종류 기타 - open_field_plate_kind_etc String? @db.VarChar(200) + open_field_plate_kind_etc String? @db.VarChar(200) //노지판 두께 - open_field_plate_thickness String? @db.VarChar(5) + open_field_plate_thickness String? @db.VarChar(5) //누수 흔적 - leak_trace Boolean? @default(false) + leak_trace Boolean? @default(false) //방수재 종류 - waterproof_material Int? @db.Int + waterproof_material Int? @db.Int //방수재 종류 기타 - waterproof_material_etc String? @db.VarChar(200) + waterproof_material_etc String? @db.VarChar(200) //단열재 여부 - insulation_presence Int? @db.Int + insulation_presence Int? @db.Int //단열재 여부 기타 - insulation_presence_etc String? @db.VarChar(200) + insulation_presence_etc String? @db.VarChar(200) //지붕 구조 순서 - structure_order Int? @db.Int + structure_order Int? @db.Int //지붕 구조 순서 기타 - structure_order_etc String? @db.VarChar(200) + structure_order_etc String? @db.VarChar(200) //설치 가능 여부 - installation_availability Int? @db.Int + installation_availability Int? @db.Int //설치 가능 여부 기타 - installation_availability_etc String? @db.VarChar(200) + installation_availability_etc String? @db.VarChar(200) //메모 - memo String? @db.VarChar(500) - created_at DateTime @default(now()) - updated_at DateTime @updatedAt - basic_info SD_SERVEY_SALES_BASIC_INFO? + memo String? @db.VarChar(500) + created_at DateTime @default(now()) + updated_at DateTime @updatedAt + basic_info SD_SERVEY_SALES_BASIC_INFO @relation(fields: [basic_info_id], references: [id]) + basic_info_id Int @unique } diff --git a/src/app/api/user/route.ts b/src/app/api/user/route.ts index e5aff9f..d3cda5f 100644 --- a/src/app/api/user/route.ts +++ b/src/app/api/user/route.ts @@ -24,12 +24,14 @@ export async function POST(request: Request) { const cookieStore = await cookies() const session = await getIronSession(cookieStore, sessionOptions) - + console.log('start session edit!') session.username = user.username! session.email = user.email! session.isLoggedIn = true - + console.log('end session edit!') await session.save() + console.log('🚀 ~ POST ~ session:', session) + // return NextResponse.redirect(new URL(process.env.NEXT_PUBLIC_URL!, request.url)) return NextResponse.json(user) } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index b1f6e97..0e4e365 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -26,7 +26,7 @@ export default function RootLayout({ }>) { return ( - + {children}