diff --git a/src/app/api/m/items/list/route.ts b/src/app/api/m/items/list/route.ts index bd22344..9411e60 100644 --- a/src/app/api/m/items/list/route.ts +++ b/src/app/api/m/items/list/route.ts @@ -109,11 +109,22 @@ export async function POST(req: NextRequest) { } // 출고요청(orders/new) 메뉴: 판매 가능 기간(sale_start_date ~ sale_end_date) 안의 품목만. // 기간이 NULL 인 품목은 상시 노출. USER 항상 적용, ADMIN 도 forSale=true 이면 적용. - // 분 단위 시간까지 비교 (NOW() vs TIMESTAMP) + // + // 종료일 비교 규칙: + // - sale_end_date 시간이 00:00:00 (자정 정각) 이면 → 그 날 23:59:59 까지 노출 + // ("5월 22일 마감" 의도는 5월 22일 종일 노출이라는 통상 해석) + // - 시간이 명시 (예: 22:00) 되어 있으면 → 그 시각까지 정확히 비교 if (isUser || forSale) { conditions.push( `(I.sale_start_date IS NULL OR NOW() >= I.sale_start_date) - AND (I.sale_end_date IS NULL OR NOW() <= I.sale_end_date)` + AND ( + I.sale_end_date IS NULL + OR NOW() <= CASE + WHEN I.sale_end_date = date_trunc('day', I.sale_end_date) + THEN I.sale_end_date + INTERVAL '1 day' - INTERVAL '1 second' + ELSE I.sale_end_date + END + )` ); }