From 18672f82e68df03b0bd41824a20370c6c34d51bc Mon Sep 17 00:00:00 2001 From: chanwoo7 Date: Wed, 19 Aug 2026 06:06:43 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=A6=B4=EB=A6=AC=EC=A6=88=20=EB=A6=AC?= =?UTF-8?q?=EB=B7=B0=20=EB=B0=98=EC=98=81=20(=EC=8B=9C=EB=93=9C=20?= =?UTF-8?q?=EC=9A=94=EC=9D=BC=20=EC=BB=A4=EB=B2=84=EB=A6=AC=EC=A7=80=C2=B7?= =?UTF-8?q?=EC=8A=AC=EB=A1=AF=20=EA=B3=84=EC=95=BD=20=EC=A3=BC=EC=84=9D=20?= =?UTF-8?q?=EB=AA=85=ED=99=95=ED=99=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 매장 B에 구조화 영업시간 시드(평일 11~21시, 주말 휴무 — 기존 텍스트 표기와 일치). A가 화요일 휴무라 B가 화요일을 커버해 요일과 무관하게 todayPickupStores 시드 확인이 가능해진다. - 슬롯 계약 주석 명확화: 슬롯은 픽업 '시각' 포인트로 시작 시각 < close면 유효(전역 정책과 동일 해석). 동작 변경 없음. --- prisma/seed/stores.ts | 14 ++++++++++++++ .../store/services/store-today-pickup.helper.ts | 6 +++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/prisma/seed/stores.ts b/prisma/seed/stores.ts index b09c70d..3db2150 100644 --- a/prisma/seed/stores.ts +++ b/prisma/seed/stores.ts @@ -111,6 +111,20 @@ export async function seedStores( is_active: true, }, }); + // 매장 B 구조화 영업시간: 평일 11~21시, 주말 휴무(텍스트 표기와 일치). + // A가 화요일 휴무라, B가 화요일을 커버해 요일과 무관하게 todayPickupStores 확인 가능. + await prisma.storeBusinessHour.createMany({ + data: [0, 1, 2, 3, 4, 5, 6].map((dayOfWeek) => { + const isWeekend = dayOfWeek === 0 || dayOfWeek === 6; + return { + store_id: storeB.id, + day_of_week: dayOfWeek, + is_closed: isWeekend, + open_time: isWeekend ? null : new Date(Date.UTC(1970, 0, 1, 11, 0)), + close_time: isWeekend ? null : new Date(Date.UTC(1970, 0, 1, 21, 0)), + }; + }), + }); // 상품 const p1 = await prisma.product.create({ diff --git a/src/features/store/services/store-today-pickup.helper.ts b/src/features/store/services/store-today-pickup.helper.ts index c40c853..7b00115 100644 --- a/src/features/store/services/store-today-pickup.helper.ts +++ b/src/features/store/services/store-today-pickup.helper.ts @@ -4,7 +4,11 @@ import type { TodayPickupSlot } from '@/features/store/types/store-today-pickup- export interface TodaySlotPolicy { /** 영업 시작(자정 경과 분). */ openMinutes: number; - /** 영업 종료(자정 경과 분, 미포함 — 마지막 슬롯은 close-interval). */ + /** + * 영업 종료(자정 경과 분, 미포함). + * 슬롯은 픽업 '시각' 포인트라 시작 시각이 close 이전이면 유효하다 + * (전역 정책 pickup.constants의 close 미포함 규칙과 동일 해석). + */ closeMinutes: number; /** 슬롯 간격(분). */ intervalMinutes: number;