From 7f795764687730f178a8fd040edab8ff78ec0b93 Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Mon, 28 Apr 2025 17:36:38 +0900 Subject: [PATCH 1/3] chore: Update DATABASE_URL in .env and enhance schema.prisma with detailed comments and new models for sales information --- .env | 3 +- prisma/schema.prisma | 215 +++++++++++++++++++++++++++++++++++-------- 2 files changed, 179 insertions(+), 39 deletions(-) diff --git a/.env b/.env index 4ebf348..9b55454 100644 --- a/.env +++ b/.env @@ -4,7 +4,8 @@ # Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. # See the documentation for all the connection string options: https://pris.ly/d/connection-strings -DATABASE_URL="sqlserver://3team.devgrr.kr:1433;database=onsitesurvey;user=sa;password=1q2w3e4r!;encrypt=true;trustServerCertificate=true;" +# DATABASE_URL="sqlserver://3team.devgrr.kr:1433;database=onsitesurvey;user=sa;password=1q2w3e4r!;encrypt=true;trustServerCertificate=true;" +DATABASE_URL="sqlserver://172.30.1.35:1433;database=onsitesurvey;user=sa;password=1q2w3e4r!;encrypt=true;trustServerCertificate=true;" # SESSION_PASSWORD="QWERASDFZXCV1234567890REWQFDSAVCXZ" SESSION_PASSWORD="This application is for mobile field research" \ No newline at end of file diff --git a/prisma/schema.prisma b/prisma/schema.prisma index d7469e8..8f9fa46 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -7,6 +7,7 @@ datasource db { url = env("DATABASE_URL") } +// 사용자 정보 model User { id Int @id @default(autoincrement()) username String @unique @@ -19,48 +20,186 @@ model User { updated_at DateTime @updatedAt } +// 지붕재 적합성 정보 model MS_SUITABLE { + //일련번호 id Int @id @default(autoincrement()) - product_name String - manufacturer String? - roof_material String? - shape String? - support_roof_tile String? - support_roof_tile_memo String? - support_roof_bracket String? - support_roof_bracket_memo String? - yg_anchor String? - yg_anchor_memo String? - rg_roof_tile_part String? - rg_roof_tile_part_memo String? - dido_hunt_support_tile_2 String? - dido_hunt_support_tile_2_memo String? - takashima_power_base String? - takashima_power_base_memo String? - takashima_tile_bracket String? - takashima_tile_bracket_memo String? - slate_bracket_4 String? - slate_bracket_4_memo String? - slate_single_metal_bracket String? - slate_single_metal_bracket_memo String? - dido_hunt_short_rack_4 String? - dido_hunt_short_rack_4_memo String? - takashima_slate_bracket_slate_single String? - takashima_slate_bracket_slate_single_memo String? - df_metal_bracket String? - df_metal_bracket_memo String? - slate_metal_bracket String? - slate_metal_bracket_memo String? - takashima_slate_bracket_metal_roof String? - takashima_slate_bracket_metal_roof_memo String? + //제품명 + product_name String @db.VarChar(200) + //제조업체명 + manufacturer String? @db.VarChar(200) + //지붕재 + roof_material String? @db.VarChar(100) + //금구형태(쇠붙이형) + shape String? @db.VarChar(200) + //지지 기와 + support_roof_tile String? @db.VarChar(1) + //지지 기와 메모 + support_roof_tile_memo String? @db.VarChar(500) + //지지 금구 + support_roof_bracket String? @db.VarChar(200) + //지지 금구 메모 + support_roof_bracket_memo String? @db.VarChar(500) + //yg 앵커 + yg_anchor String? @db.VarChar(200) + //yg 앵커 메모 + yg_anchor_memo String? @db.VarChar(500) + //rg 지붕판 + rg_roof_tile_part String? @db.VarChar(200) + //rg 지붕판 메모 + rg_roof_tile_part_memo String? @db.VarChar(500) + //다이도헌트 지지 기와2 + dido_hunt_support_tile_2 String? @db.VarChar(200) + //다이도헌트 지지 기와2 메모 + dido_hunt_support_tile_2_memo String? @db.VarChar(500) + //타카시마 파워 베이스 + takashima_power_base String? @db.VarChar(200) + //타카시마 파워 베이스 메모 + takashima_power_base_memo String? @db.VarChar(500) + //타카시마용 금구 + takashima_tile_bracket String? @db.VarChar(200) + //타카시마용 금구 메모 + takashima_tile_bracket_memo String? @db.VarChar(500) + //슬레이트 금구4 + slate_bracket_4 String? @db.VarChar(200) + //슬레이트 금구4 메모 + slate_bracket_4_memo String? @db.VarChar(500) + //슬레이트 판금 금구(슬레이트, 싱글) + slate_single_metal_bracket String? @db.VarChar(200) + //슬레이트 판금 금구 메모(슬레이트, 싱글) + slate_single_metal_bracket_memo String? @db.VarChar(500) + //다이도헌트 짧은 트랙4 + dido_hunt_short_rack_4 String? @db.VarChar(200) + //다이도헌트 짧은 트랙4 메모 + dido_hunt_short_rack_4_memo String? @db.VarChar(500) + //타카시마 슬레이트 금구 + takashima_slate_bracket_slate_single String? @db.VarChar(200) + //타카시마 슬레이트 금구 메모 + takashima_slate_bracket_slate_single_memo String? @db.VarChar(500) + //df 판금 금구 + df_metal_bracket String? @db.VarChar(200) + //df 판금 금구 메모 + df_metal_bracket_memo String? @db.VarChar(500) + //슬레이트 판금 금구(금속 지붕) + slate_metal_bracket String? @db.VarChar(200) + //슬레이트 판금 금구(금속 지붕) 메모 + slate_metal_bracket_memo String? @db.VarChar(500) + //타카시마 슬레이트 금구(금속 지붕) + takashima_slate_bracket_metal_roof String? @db.VarChar(200) + //타카시마 슬레이트 금구(금속 지붕) 메모 + takashima_slate_bracket_metal_roof_memo String? @db.VarChar(500) created_at DateTime @default(now()) updated_at DateTime @updatedAt } -model SD_SERVEY_SALES { - id Int @id @default(autoincrement()) - title String @db.VarChar(200) - content String? - created_at DateTime @default(now()) - updated_at DateTime @updatedAt +// 조사 매물 기본 정보 +model SD_SERVEY_SALES_BASIC_INFO { + //일련번호 + id Int @id @default(autoincrement()) + //담당자명 + representative String @db.VarChar(200) + //판매점 + store String? @db.VarChar(200) + //시공점 + construction_point String? @db.VarChar(200) + //현재 조사일 + investigation_date String? @db.VarChar(10) + //건물명 + building_name String? @db.VarChar(200) + //고객명 + customer_name String? @db.VarChar(200) + //우편번호 + post_code String? @db.VarChar(10) + //주소 + address String? @db.VarChar(200) + //상세주소 + address_detail String? @db.VarChar(300) + //제출상태 + submission_status Boolean @default(false) + //제출일 + 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 +} + +// 조사 매물 전기 지붕 정보 +model SD_SERVEY_SALES_DETAIL_INFO { + //일련번호 + id Int @id @default(autoincrement()) + //전기계약 용량 + contract_capacity String? @db.VarChar(20) + //전기 소매 회사 + retail_company String? @db.VarChar(100) + //전기 부대 설비 + supplementary_facilities Int? @db.Int + //전기 부대 설비 기타 + supplementary_facilities_etc String? @db.VarChar(200) + //설치 희망 시스템 + installation_system Int? @db.Int + //설치 희망 시스템 기타 + installation_system_etc String? @db.VarChar(200) + //건축 연수 + construction_year Int? @db.Int + //건축 연수 기타 + construction_year_etc String? @db.VarChar(200) + //지붕재 + roof_material Int? @db.Int + //지붕재 기타 + roof_material_etc String? @db.VarChar(200) + //지붕 모양 + roof_shape Int? @db.Int + //지붕 모양 기타 + roof_shape_etc String? @db.VarChar(200) + //지붕 경사도 + roof_slope String? @db.VarChar(5) + //주택 구조 + house_structure Int? @db.Int + //주택 구조 기타 + house_structure_etc String? @db.VarChar(200) + //서까래 재질 + rafter_material Int? @db.Int + //서까래 재질 기타 + rafter_material_etc String? @db.VarChar(200) + //서까래 크기 + rafter_size Int? @db.Int + //서까래 크기 기타 + rafter_size_etc String? @db.VarChar(200) + //서까래 피치 + rafter_pitch Int? @db.Int + //서까래 피치 기타 + rafter_pitch_etc String? @db.VarChar(200) + //서까래 방향 + rafter_direction Int? @db.Int + //노지판 종류 + open_field_plate_kind Int? @db.Int + //노지판 종류 기타 + open_field_plate_kind_etc String? @db.VarChar(200) + //노지판 두께 + open_field_plate_thickness String? @db.VarChar(5) + //누수 흔적 + leak_trace Boolean? @default(false) + //방수재 종류 + waterproof_material Int? @db.Int + //방수재 종류 기타 + waterproof_material_etc String? @db.VarChar(200) + //단열재 여부 + insulation_presence Int? @db.Int + //단열재 여부 기타 + insulation_presence_etc String? @db.VarChar(200) + //지붕 구조 순서 + structure_order Int? @db.Int + //지붕 구조 순서 기타 + structure_order_etc String? @db.VarChar(200) + //설치 가능 여부 + installation_availability Int? @db.Int + //설치 가능 여부 기타 + 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? } From 866de531fa68560c29d812a212efe15c10461e6d Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Mon, 28 Apr 2025 17:36:51 +0900 Subject: [PATCH 2/3] feat: Implement Survey Sales API and UI components for creating and listing survey sales information --- src/api/surveySales.ts | 67 +++++++++++++++++++++++++++++++ src/app/api/survey-sales/route.ts | 13 ++++++ src/app/page.tsx | 6 +++ src/app/suitable/page.tsx | 3 +- src/app/survey-sales/page.tsx | 10 +++++ src/components/SurveySales.tsx | 53 ++++++++++++++++++++++++ 6 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 src/api/surveySales.ts create mode 100644 src/app/api/survey-sales/route.ts create mode 100644 src/app/survey-sales/page.tsx create mode 100644 src/components/SurveySales.tsx diff --git a/src/api/surveySales.ts b/src/api/surveySales.ts new file mode 100644 index 0000000..3d9d727 --- /dev/null +++ b/src/api/surveySales.ts @@ -0,0 +1,67 @@ +import { axiosInstance } from '@/libs/axios' + +export interface SurveySalesBasicInfo { + id?: number + representative: String + store: String | null + construction_point: String | null + investigation_date: String | null + building_name: String | null + customer_name: String | null + post_code: String | null + address: String | null + address_detail: String | null + submission_status: Boolean + submission_date?: String | null + detail_info?: SurveySalesDetailInfo | null +} + +export interface SurveySalesDetailInfo { + id?: number + contract_capacity: String | null + retail_company: String | null + supplementary_facilities: Number | null + supplementary_facilities_etc: String | null + installation_system: Number | null + installation_system_etc: String | null + construction_year: Number | null + construction_year_etc: String | null + roof_material: Number | null + roof_material_etc: String | null + roof_shape: Number | null + roof_shape_etc: String | null + roof_slope: String | null + house_structure: Number | null + house_structure_etc: String | null + rafter_material: Number | null + rafter_material_etc: String | null + rafter_size: Number | null + rafter_size_etc: String | null + rafter_pitch: Number | null + rafter_pitch_etc: String | null + rafter_direction: Number | null + open_field_plate_kind: Number | null + open_field_plate_kind_etc: String | null + open_field_plate_thickness: String | null + leak_trace: Boolean | null + waterproof_material: Number | null + waterproof_material_etc: String | null + insulation_presence: Number | null + insulation_presence_etc: String | null + structure_order: Number | null + structure_order_etc: String | null + installation_availability: Number | null + installation_availability_etc: String | null + memo: String | null +} + +export const surveySalesApi = { + create: async (data: SurveySalesBasicInfo): Promise => { + const response = await axiosInstance.post('/api/survey-sales', data) + return response.data + }, + getList: async (): Promise => { + const response = await axiosInstance.get('/api/survey-sales') + return response.data + }, +} diff --git a/src/app/api/survey-sales/route.ts b/src/app/api/survey-sales/route.ts new file mode 100644 index 0000000..decd3a3 --- /dev/null +++ b/src/app/api/survey-sales/route.ts @@ -0,0 +1,13 @@ +import { NextResponse } from 'next/server' +import { prisma } from '@/libs/prisma' + +export async function POST(request: Request) { + const body = await request.json() + + // @ts-ignore + const res = await prisma.SD_SERVEY_SALES_BASIC_INFO.create({ + data: body, + }) + + return NextResponse.json({ message: 'Survey sales created successfully' }) +} diff --git a/src/app/page.tsx b/src/app/page.tsx index 2407d84..7b7cc48 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -31,6 +31,12 @@ export default async function Home() { +
+ + + +
+ diff --git a/src/app/suitable/page.tsx b/src/app/suitable/page.tsx index 759c518..9bd4694 100644 --- a/src/app/suitable/page.tsx +++ b/src/app/suitable/page.tsx @@ -1,5 +1,4 @@ import Suitable from '@/components/Suitable' -import SuitableCreateBtn from '@/components/SuitableCreateBtn' import SuitableSearch from '@/components/SuitableSearch' export default function suitablePage() { @@ -8,7 +7,7 @@ export default function suitablePage() { {/* 최초 한번 밀어넣음 */} - + {/* */} ) } diff --git a/src/app/survey-sales/page.tsx b/src/app/survey-sales/page.tsx new file mode 100644 index 0000000..6671ce4 --- /dev/null +++ b/src/app/survey-sales/page.tsx @@ -0,0 +1,10 @@ +import SurveySales from '@/components/SurveySales' + +export default function page() { + return ( + <> +

조사 매물 정보

+ + + ) +} diff --git a/src/components/SurveySales.tsx b/src/components/SurveySales.tsx new file mode 100644 index 0000000..fbba048 --- /dev/null +++ b/src/components/SurveySales.tsx @@ -0,0 +1,53 @@ +'use client' + +import { surveySalesApi, SurveySalesBasicInfo } from '@/api/surveySales' +import { useMutation, useQueryClient } from '@tanstack/react-query' + +export default function SurveySales() { + const queryClient = useQueryClient() + + const { + mutate: createSurveySales, + isPending, + error, + } = useMutation({ + mutationFn: surveySalesApi.create, + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ['survey-sales', 'list'] }) + }, + }) + + const handleSurveySales = () => { + const data: SurveySalesBasicInfo = { + representative: 'keyy1315', + store: 'HWJ(T01)', + construction_point: 'HWJ(T01)', + investigation_date: '2025-04-28', + building_name: '한화재팬빌딩', + customer_name: 'Hong Gil Dong', + post_code: '1050013', + address: '서울특별시 강남구 테헤란로 14길 6 ', + address_detail: '남도빌딩 2층', + submission_status: false, + } + + createSurveySales(data) + } + + return ( + <> +
+
+ + +
+
+
+

Be Warned

+

기본 데이터 세팅 되어있습니다.

+
+ + ) +} From 58662400cb2698d1258625f0e6c742bafe5cda88 Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Tue, 29 Apr 2025 10:23:15 +0900 Subject: [PATCH 3/3] 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}