From 6bcec4c0ed2a706b4ba657c46fa284d63ff19197 Mon Sep 17 00:00:00 2001 From: pricelees Date: Sat, 20 Sep 2025 03:15:06 +0000 Subject: [PATCH] =?UTF-8?q?[#44]=20=EB=A7=A4=EC=9E=A5=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=20=EB=8F=84=EC=9E=85=20(#45)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 📝 관련 이슈 및 PR **PR과 관련된 이슈 번호** - #44 ## ✨ 작업 내용 - 매장 기능 도입 및 기존 기능에 적용 - 관리자 타입(본사, 매장, 전체) 분리 및 API별 적용 ## 🧪 테스트 - 신규 기능 및 매장 기능 도입으로 수정된 기존 API 모두 통합 테스트 완료 ## 📚 참고 자료 및 기타 - 아직 미결제 예약 스케쥴링 작업 등 추가적인 작업이 필요하긴 하지만, 이 작업들은 배포 후 추가로 진행할 예정 - 다음 작업은 배포 + 초기 데이터 삽입 Reviewed-on: https://gitea.pricelees.me/pricelees/roomescape-refactored/pulls/45 Co-authored-by: pricelees Co-committed-by: pricelees --- build.gradle.kts | 3 + data/population.xlsx | Bin 0 -> 225531 bytes frontend/src/App.tsx | 40 +- frontend/src/api/apiClient.ts | 57 +- frontend/src/api/auth/authAPI.ts | 36 +- frontend/src/api/auth/authTypes.ts | 16 + frontend/src/api/common/commonTypes.ts | 11 + frontend/src/api/region/regionAPI.ts | 14 + frontend/src/api/region/regionTypes.ts | 27 + .../src/api/reservation/reservationAPI.ts | 10 +- .../src/api/reservation/reservationTypes.ts | 44 +- frontend/src/api/schedule/scheduleAPI.ts | 56 +- frontend/src/api/schedule/scheduleTypes.ts | 55 +- frontend/src/api/store/storeAPI.ts | 48 + frontend/src/api/store/storeTypes.ts | 48 + frontend/src/api/theme/themeAPI.ts | 32 +- frontend/src/api/theme/themeTypes.ts | 82 +- frontend/src/api/user/userAPI.ts | 4 +- frontend/src/context/AdminAuthContext.tsx | 96 + frontend/src/context/AuthContext.tsx | 62 +- frontend/src/css/admin-schedule-page.css | 130 +- frontend/src/css/admin-store-page.css | 207 ++ frontend/src/css/home-page-v2.css | 33 +- frontend/src/css/my-reservation-v2.css | 66 +- frontend/src/css/reservation-v2-1.css | 545 ++- frontend/src/css/signup-page-v2.css | 11 +- frontend/src/pages/HomePage.tsx | 17 +- frontend/src/pages/LoginPage.tsx | 6 +- frontend/src/pages/MyReservationPage.tsx | 188 +- frontend/src/pages/ReservationFormPage.tsx | 91 +- frontend/src/pages/ReservationStep1Page.tsx | 303 +- frontend/src/pages/ReservationStep2Page.tsx | 45 +- frontend/src/pages/ReservationSuccessPage.tsx | 20 +- frontend/src/pages/SignupPage.tsx | 111 +- frontend/src/pages/admin/AdminLayout.tsx | 21 +- frontend/src/pages/admin/AdminLoginPage.tsx | 61 + frontend/src/pages/admin/AdminNavbar.tsx | 15 +- .../src/pages/admin/AdminSchedulePage.tsx | 409 ++- frontend/src/pages/admin/AdminStorePage.tsx | 370 ++ .../src/pages/admin/AdminThemeEditPage.tsx | 129 +- frontend/src/pages/admin/AdminThemePage.tsx | 10 +- frontend/src/util/DateTimeFormatter.ts | 41 +- frontend/tsconfig.app.json | 1 + .../roomescape/admin/business/AdminService.kt | 48 +- .../infrastructure/persistence/AdminEntity.kt | 16 +- .../roomescape/auth/business/AuthService.kt | 33 +- .../kotlin/roomescape/auth/docs/AuthAPI.kt | 28 +- .../auth/infrastructure/jwt/JwtUtils.kt | 19 - .../roomescape/auth/web/AuthController.kt | 12 +- .../kotlin/roomescape/auth/web/AuthDTO.kt | 20 +- .../auth/web/support/AuthAnnotations.kt | 8 +- .../support/interceptors/AdminInterceptor.kt | 81 +- .../interceptors/AuthenticatedInterceptor.kt | 44 - .../support/interceptors/UserInterceptor.kt | 32 +- ...textResolver.kt => UserContextResolver.kt} | 16 +- .../roomescape/common/config/JacksonConfig.kt | 32 +- .../roomescape/common/config/JpaConfig.kt | 13 +- .../roomescape/common/config/WebMvcConfig.kt | 9 +- .../kotlin/roomescape/common/dto/AuditDto.kt | 22 + .../roomescape/common/dto/CommonAuth.kt | 55 +- .../common/log/ApiLogMessageConverter.kt | 7 +- .../common/log/HttpRequestLoggingFilter.kt | 3 +- .../kotlin/roomescape/common/util/MDCUtils.kt | 27 + .../roomescape/payment/docs/PaymentAPI.kt | 13 +- .../infrastructure/client/TosspayClient.kt | 7 +- .../payment/web/PaymentController.kt | 10 +- .../region/business/RegionService.kt | 73 + .../roomescape/region/docs/RegionAPI.kt | 35 + .../region/exception/RegionException.kt | 21 + .../persistence/RegionEntity.kt | 5 +- .../persistence/RegionRepository.kt | 53 +- .../roomescape/region/web/RegionController.kt | 42 + .../kotlin/roomescape/region/web/RegionDTO.kt | 29 + .../business/ReservationService.kt | 32 +- .../reservation/docs/ReservationAPI.kt | 40 +- .../reservation/web/ReservationController.kt | 16 +- .../reservation/web/ReservationDto.kt | 41 +- .../schedule/business/ScheduleService.kt | 188 +- .../schedule/business/ScheduleValidator.kt | 24 +- .../business/domain/ScheduleOverview.kt | 30 + .../roomescape/schedule/docs/ScheduleAPI.kt | 91 +- .../schedule/exception/ScheduleErrorCode.kt | 3 +- .../persistence/ScheduleEntity.kt | 47 +- .../persistence/ScheduleRepository.kt | 77 +- .../schedule/web/AdminScheduleController.kt | 66 + .../schedule/web/AdminScheduleDto.kt | 55 + .../schedule/web/ScheduleController.kt | 68 +- .../roomescape/schedule/web/ScheduleDto.kt | 105 +- .../roomescape/store/business/StoreService.kt | 139 + .../store/business/StoreValidator.kt | 59 + .../kotlin/roomescape/store/docs/StoreAPI.kt | 64 + .../store/exception/StoreException.kt | 23 + .../infrastructure/persistence/StoreEntity.kt | 48 + .../persistence/StoreRepository.kt | 38 + .../store/web/AdminStoreController.kt | 52 + .../roomescape/store/web/AdminStoreDto.kt | 46 + .../roomescape/store/web/StoreController.kt | 35 + .../kotlin/roomescape/store/web/StoreDTO.kt | 32 + .../roomescape/theme/business/ThemeService.kt | 89 +- .../kotlin/roomescape/theme/docs/ThemeApi.kt | 61 +- .../infrastructure/persistence/ThemeEntity.kt | 6 +- .../persistence/ThemeRepository.kt | 8 +- .../theme/web/AdminThemeController.kt | 63 + .../roomescape/theme/web/AdminThemeDto.kt | 127 + .../roomescape/theme/web/ThemeController.kt | 63 +- .../kotlin/roomescape/theme/web/ThemeDto.kt | 134 +- .../roomescape/user/business/UserService.kt | 6 +- .../kotlin/roomescape/user/docs/UserAPI.kt | 27 +- .../roomescape/user/web/UserController.kt | 10 +- src/main/resources/schema/region-data.sql | 3216 ++--------------- src/main/resources/schema/schema-h2.sql | 82 +- src/main/resources/schema/schema-mysql.sql | 135 +- .../kotlin/roomescape/auth/AuthApiTest.kt | 157 +- .../auth/FailOnSaveLoginHistoryTest.kt | 4 +- src/test/kotlin/roomescape/data/DataParser.kt | 99 + .../roomescape/data/StoreDataInitializer.kt | 130 + .../roomescape/payment/PaymentAPITest.kt | 45 +- .../roomescape/region/RegionApiFailTest.kt | 53 + .../roomescape/region/RegionApiSuccessTest.kt | 43 + .../reservation/ReservationApiTest.kt | 304 +- .../schedule/AdminScheduleApiTest.kt | 657 ++++ .../roomescape/schedule/ScheduleApiTest.kt | 579 +-- .../roomescape/store/AdminStoreApiTest.kt | 519 +++ .../kotlin/roomescape/store/StoreApiTest.kt | 104 + .../roomescape/supports/DummyInitializer.kt | 188 +- .../kotlin/roomescape/supports/Fixtures.kt | 199 +- .../roomescape/supports/KotestConfig.kt | 14 +- .../roomescape/supports/RestAssuredUtils.kt | 92 +- .../roomescape/supports/TestAuthUtil.kt | 119 + .../kotlin/roomescape/supports/TestUtil.kt | 34 + .../roomescape/theme/AdminThemeApiTest.kt | 787 ++++ .../kotlin/roomescape/theme/ThemeApiTest.kt | 813 +---- .../kotlin/roomescape/user/UserApiTest.kt | 38 +- 133 files changed, 7904 insertions(+), 6904 deletions(-) create mode 100644 data/population.xlsx create mode 100644 frontend/src/api/common/commonTypes.ts create mode 100644 frontend/src/api/region/regionAPI.ts create mode 100644 frontend/src/api/region/regionTypes.ts create mode 100644 frontend/src/api/store/storeAPI.ts create mode 100644 frontend/src/api/store/storeTypes.ts create mode 100644 frontend/src/context/AdminAuthContext.tsx create mode 100644 frontend/src/css/admin-store-page.css create mode 100644 frontend/src/pages/admin/AdminLoginPage.tsx create mode 100644 frontend/src/pages/admin/AdminStorePage.tsx delete mode 100644 src/main/kotlin/roomescape/auth/web/support/interceptors/AuthenticatedInterceptor.kt rename src/main/kotlin/roomescape/auth/web/support/resolver/{CurrentUserContextResolver.kt => UserContextResolver.kt} (76%) create mode 100644 src/main/kotlin/roomescape/common/dto/AuditDto.kt create mode 100644 src/main/kotlin/roomescape/common/util/MDCUtils.kt create mode 100644 src/main/kotlin/roomescape/region/business/RegionService.kt create mode 100644 src/main/kotlin/roomescape/region/docs/RegionAPI.kt create mode 100644 src/main/kotlin/roomescape/region/exception/RegionException.kt create mode 100644 src/main/kotlin/roomescape/region/web/RegionController.kt create mode 100644 src/main/kotlin/roomescape/region/web/RegionDTO.kt create mode 100644 src/main/kotlin/roomescape/schedule/business/domain/ScheduleOverview.kt create mode 100644 src/main/kotlin/roomescape/schedule/web/AdminScheduleController.kt create mode 100644 src/main/kotlin/roomescape/schedule/web/AdminScheduleDto.kt create mode 100644 src/main/kotlin/roomescape/store/business/StoreService.kt create mode 100644 src/main/kotlin/roomescape/store/business/StoreValidator.kt create mode 100644 src/main/kotlin/roomescape/store/docs/StoreAPI.kt create mode 100644 src/main/kotlin/roomescape/store/exception/StoreException.kt create mode 100644 src/main/kotlin/roomescape/store/infrastructure/persistence/StoreEntity.kt create mode 100644 src/main/kotlin/roomescape/store/infrastructure/persistence/StoreRepository.kt create mode 100644 src/main/kotlin/roomescape/store/web/AdminStoreController.kt create mode 100644 src/main/kotlin/roomescape/store/web/AdminStoreDto.kt create mode 100644 src/main/kotlin/roomescape/store/web/StoreController.kt create mode 100644 src/main/kotlin/roomescape/store/web/StoreDTO.kt create mode 100644 src/main/kotlin/roomescape/theme/web/AdminThemeController.kt create mode 100644 src/main/kotlin/roomescape/theme/web/AdminThemeDto.kt create mode 100644 src/test/kotlin/roomescape/data/DataParser.kt create mode 100644 src/test/kotlin/roomescape/data/StoreDataInitializer.kt create mode 100644 src/test/kotlin/roomescape/region/RegionApiFailTest.kt create mode 100644 src/test/kotlin/roomescape/region/RegionApiSuccessTest.kt create mode 100644 src/test/kotlin/roomescape/schedule/AdminScheduleApiTest.kt create mode 100644 src/test/kotlin/roomescape/store/AdminStoreApiTest.kt create mode 100644 src/test/kotlin/roomescape/store/StoreApiTest.kt create mode 100644 src/test/kotlin/roomescape/supports/TestAuthUtil.kt create mode 100644 src/test/kotlin/roomescape/supports/TestUtil.kt create mode 100644 src/test/kotlin/roomescape/theme/AdminThemeApiTest.kt diff --git a/build.gradle.kts b/build.gradle.kts index 8405fd6f..c6a792f2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -79,6 +79,9 @@ dependencies { // RestAssured testImplementation("io.rest-assured:rest-assured:5.5.5") testImplementation("io.rest-assured:kotlin-extensions:5.5.5") + + // etc + implementation("org.apache.poi:poi-ooxml:5.2.3") } tasks.withType { diff --git a/data/population.xlsx b/data/population.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..af8c2e8c3878ca7ed763fa06b26c994b1aa93681 GIT binary patch literal 225531 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

a93KkNQjd_SAgHW4j{KJWP!{FCXP>#n7dz6v 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 ( - - - } /> - } /> - } /> - } /> - - -); - function App() { return ( - - + + + } /> + + + } /> + } /> + } /> + } /> + } /> + + + } /> + + } /> @@ -57,4 +61,4 @@ function App() { ); } -export default App; \ No newline at end of file +export default App; diff --git a/frontend/src/api/apiClient.ts b/frontend/src/api/apiClient.ts index 5871ff7f..2db29e2d 100644 --- a/frontend/src/api/apiClient.ts +++ b/frontend/src/api/apiClient.ts @@ -1,5 +1,6 @@ import axios, {type AxiosError, type AxiosRequestConfig, type Method} from 'axios'; import JSONbig from 'json-bigint'; +import { PrincipalType } from './auth/authTypes'; // Create a JSONbig instance that stores big integers as strings const JSONbigString = JSONbig({ storeAsString: true }); @@ -38,7 +39,7 @@ async function request( method: Method, endpoint: string, data: object = {}, - isRequiredAuth: boolean = false + type: PrincipalType, ): Promise { const config: AxiosRequestConfig = { method, @@ -48,8 +49,9 @@ async function request( }, }; + const accessTokenKey = type === PrincipalType.ADMIN ? 'adminAccessToken' : 'accessToken'; + const accessToken = localStorage.getItem(accessTokenKey); - const accessToken = localStorage.getItem('accessToken'); if (accessToken) { if (!config.headers) { config.headers = {}; @@ -57,7 +59,6 @@ async function request( config.headers['Authorization'] = `Bearer ${accessToken}`; } - if (method.toUpperCase() !== 'GET') { config.data = data; } @@ -72,30 +73,50 @@ async function request( } } -async function get(endpoint: string, isRequiredAuth: boolean = false): Promise { - return request('GET', endpoint, {}, isRequiredAuth); +async function get(endpoint: string): Promise { + return request('GET', endpoint, {}, PrincipalType.USER); } -async function post(endpoint: string, data: object = {}, isRequiredAuth: boolean = false): Promise { - return request('POST', endpoint, data, isRequiredAuth); +async function adminGet(endpoint: string): Promise { + return request('GET', endpoint, {}, PrincipalType.ADMIN); } -async function put(endpoint: string, data: object = {}, isRequiredAuth: boolean = false): Promise { - return request('PUT', endpoint, data, isRequiredAuth); +async function post(endpoint: string, data: object = {}): Promise { + return request('POST', endpoint, data, PrincipalType.USER); } -async function patch(endpoint: string, data: object = {}, isRequiredAuth: boolean = false): Promise { - return request('PATCH', endpoint, data, isRequiredAuth); +async function adminPost(endpoint: string, data: object = {}): Promise { + return request('POST', endpoint, data, PrincipalType.ADMIN); } -async function del(endpoint: string, isRequiredAuth: boolean = false): Promise { - return request('DELETE', endpoint, {}, isRequiredAuth); +async function put(endpoint: string, data: object = {}): Promise { + return request('PUT', endpoint, data, PrincipalType.USER); +} + +async function adminPut(endpoint: string, data: object = {}): Promise { + return request('PUT', endpoint, data, PrincipalType.ADMIN); +} + +async function patch(endpoint: string, data: object = {}): Promise { + return request('PATCH', endpoint, data, PrincipalType.USER); +} + +async function adminPatch(endpoint: string, data: object = {}): Promise { + return request('PATCH', endpoint, data, PrincipalType.ADMIN); +} + +async function del(endpoint: string): Promise { + return request('DELETE', endpoint, {}, PrincipalType.USER); +} + +async function adminDel(endpoint: string): Promise { + return request('DELETE', endpoint, {}, PrincipalType.ADMIN); } export default { - get, - post, - put, - patch, - del + get, adminGet, + post, adminPost, + put, adminPut, + patch, adminPatch, + del, adminDel, }; diff --git a/frontend/src/api/auth/authAPI.ts b/frontend/src/api/auth/authAPI.ts index 93216199..141b3e45 100644 --- a/frontend/src/api/auth/authAPI.ts +++ b/frontend/src/api/auth/authAPI.ts @@ -1,19 +1,33 @@ import apiClient from '@_api/apiClient'; -import type {CurrentUserContext, LoginRequest, LoginSuccessResponse} from './authTypes'; +import { + type AdminLoginSuccessResponse, + type LoginRequest, + PrincipalType, + type UserLoginSuccessResponse, +} from './authTypes'; - -export const login = async (data: LoginRequest): Promise => { - const response = await apiClient.post('/auth/login', data, false); - localStorage.setItem('accessToken', response.accessToken); - - return response; +export const userLogin = async ( + data: Omit, +): Promise => { + return await apiClient.post( + '/auth/login', + { ...data, principalType: PrincipalType.USER }, + ); }; -export const checkLogin = async (): Promise => { - return await apiClient.get('/auth/login/check', true); +export const adminLogin = async ( + data: Omit, +): Promise => { + return await apiClient.adminPost( + '/auth/login', + { ...data, principalType: PrincipalType.ADMIN }, + ); }; export const logout = async (): Promise => { - await apiClient.post('/auth/logout', {}, true); - localStorage.removeItem('accessToken'); + await apiClient.post('/auth/logout', {}); }; + +export const adminLogout = async (): Promise => { + await apiClient.adminPost('/auth/logout', {}); +} diff --git a/frontend/src/api/auth/authTypes.ts b/frontend/src/api/auth/authTypes.ts index 426168c4..c67e1e92 100644 --- a/frontend/src/api/auth/authTypes.ts +++ b/frontend/src/api/auth/authTypes.ts @@ -5,6 +5,13 @@ export const PrincipalType = { export type PrincipalType = typeof PrincipalType[keyof typeof PrincipalType]; +export const AdminType = { + HQ: 'HQ', + STORE: 'STORE', +} as const; + +export type AdminType = typeof AdminType[keyof typeof AdminType]; + export interface LoginRequest { account: string, password: string; @@ -13,6 +20,15 @@ export interface LoginRequest { export interface LoginSuccessResponse { accessToken: string; + name: string; +} + +export interface UserLoginSuccessResponse extends LoginSuccessResponse { +} + +export interface AdminLoginSuccessResponse extends LoginSuccessResponse { + type: AdminType; + storeId: string | null; } export interface CurrentUserContext { diff --git a/frontend/src/api/common/commonTypes.ts b/frontend/src/api/common/commonTypes.ts new file mode 100644 index 00000000..babcdab3 --- /dev/null +++ b/frontend/src/api/common/commonTypes.ts @@ -0,0 +1,11 @@ +export interface OperatorInfo { + id: string; + name: string; +} + +export interface AuditInfo { + createdAt: string; + updatedAt: string; + createdBy: OperatorInfo; + updatedBy: OperatorInfo; +} \ No newline at end of file diff --git a/frontend/src/api/region/regionAPI.ts b/frontend/src/api/region/regionAPI.ts new file mode 100644 index 00000000..7927bbfe --- /dev/null +++ b/frontend/src/api/region/regionAPI.ts @@ -0,0 +1,14 @@ +import apiClient from "@_api/apiClient"; +import type { RegionCodeResponse, SidoListResponse, SigunguListResponse } from "./regionTypes"; + +export const fetchSidoList = async (): Promise => { + return await apiClient.get(`/regions/sido`); +}; + +export const fetchSigunguList = async (sidoCode: string): Promise => { + return await apiClient.get(`/regions/sigungu?sidoCode=${sidoCode}`); +} + +export const fetchRegionCode = async (sidoCode: string, sigunguCode: string): Promise => { + return await apiClient.get(`/regions/code?sidoCode=${sidoCode}&sigunguCode=${sigunguCode}`); +} diff --git a/frontend/src/api/region/regionTypes.ts b/frontend/src/api/region/regionTypes.ts new file mode 100644 index 00000000..7c8f181d --- /dev/null +++ b/frontend/src/api/region/regionTypes.ts @@ -0,0 +1,27 @@ +export interface SidoResponse { + code: string, + name: string, +} + +export interface SidoListResponse { + sidoList: SidoResponse[] +} + +export interface SigunguResponse { + code: string, + name: string, +} + +export interface SigunguListResponse { + sigunguList: SigunguResponse[] +} + +export interface RegionCodeResponse { + code: string +} + +export interface RegionInfoResponse { + code: string, + sidoName: string, + sigunguName: string, +} \ No newline at end of file diff --git a/frontend/src/api/reservation/reservationAPI.ts b/frontend/src/api/reservation/reservationAPI.ts index f2a80d5e..74f96d26 100644 --- a/frontend/src/api/reservation/reservationAPI.ts +++ b/frontend/src/api/reservation/reservationAPI.ts @@ -4,7 +4,7 @@ import type { PendingReservationCreateRequest, PendingReservationCreateResponse, ReservationDetailRetrieveResponse, - ReservationSummaryRetrieveListResponse + ReservationOverviewListResponse } from './reservationTypes'; export const createPendingReservation = async (request: PendingReservationCreateRequest): Promise => { @@ -17,11 +17,11 @@ export const confirmReservation = async (reservationId: string): Promise = export const cancelReservation = async (id: string, cancelReason: string): Promise => { - return await apiClient.post(`/reservations/${id}/cancel`, { cancelReason }, true); + return await apiClient.post(`/reservations/${id}/cancel`, { cancelReason }); }; -export const fetchSummaryByMember = async (): Promise => { - return await apiClient.get('/reservations/summary'); +export const fetchAllOverviewByUser = async (): Promise => { + return await apiClient.get('/reservations/overview'); } export const fetchDetailById = async (reservationId: string): Promise => { @@ -29,5 +29,5 @@ export const fetchDetailById = async (reservationId: string): Promise => { - return await apiClient.get(`/reservations/popular-themes?count=${count}`, false); + return await apiClient.get(`/reservations/popular-themes?count=${count}`); } \ No newline at end of file diff --git a/frontend/src/api/reservation/reservationTypes.ts b/frontend/src/api/reservation/reservationTypes.ts index 5c19d21a..6ffd2a72 100644 --- a/frontend/src/api/reservation/reservationTypes.ts +++ b/frontend/src/api/reservation/reservationTypes.ts @@ -1,6 +1,24 @@ import type {PaymentRetrieveResponse} from "@_api/payment/PaymentTypes"; import type {UserContactRetrieveResponse} from "@_api/user/userTypes"; +export interface ReservationData { + scheduleId: string; + store: { + id: string; + name: string; + } + theme: { + id: string; + name: string; + price: number; + minParticipants: number; + maxParticipants: number; + } + date: string; // "yyyy-MM-dd" + startFrom: string; // "HH:mm ~ HH:mm" + endAt: string; +} + export const ReservationStatus = { PENDING: 'PENDING', CONFIRMED: 'CONFIRMED', @@ -28,30 +46,38 @@ export interface PendingReservationCreateResponse { id: string } -export interface ReservationSummaryRetrieveResponse { +export interface ReservationOverviewResponse { id: string; + storeName: string; themeName: string; date: string; - startAt: string; + startFrom: string; + endAt: string; status: ReservationStatus; } -export interface ReservationSummaryRetrieveListResponse { - reservations: ReservationSummaryRetrieveResponse[]; +export interface ReservationOverviewListResponse { + reservations: ReservationOverviewResponse[]; +} + +export interface ReserverInfo { + name: string; + contact: string; + participantCount: number; + requirement: string; } export interface ReservationDetailRetrieveResponse { id: string; + reserver: ReserverInfo; user: UserContactRetrieveResponse; applicationDateTime: string; payment: PaymentRetrieveResponse; } export interface ReservationDetail { - id: string; - themeName: string; - date: string; - startAt: string; + overview: ReservationOverviewResponse; + reserver: ReserverInfo; user: UserContactRetrieveResponse; applicationDateTime: string; payment?: PaymentRetrieveResponse; @@ -59,4 +85,4 @@ export interface ReservationDetail { export interface MostReservedThemeIdListResponse { themeIds: string[]; -} \ No newline at end of file +} diff --git a/frontend/src/api/schedule/scheduleAPI.ts b/frontend/src/api/schedule/scheduleAPI.ts index 87d7d0ac..4ca28dc3 100644 --- a/frontend/src/api/schedule/scheduleAPI.ts +++ b/frontend/src/api/schedule/scheduleAPI.ts @@ -1,37 +1,49 @@ -import apiClient from '../apiClient'; -import type { - AvailableThemeIdListResponse, - ScheduleCreateRequest, - ScheduleCreateResponse, - ScheduleDetailRetrieveResponse, - ScheduleRetrieveListResponse, - ScheduleUpdateRequest -} from './scheduleTypes'; +import apiClient from "@_api/apiClient"; +import type { AdminScheduleSummaryListResponse, ScheduleCreateRequest, ScheduleCreateResponse, ScheduleStatus, ScheduleUpdateRequest, ScheduleWithThemeListResponse } from "./scheduleTypes"; +import type { AuditInfo } from "@_api/common/commonTypes"; -export const findAvailableThemesByDate = async (date: string): Promise => { - return await apiClient.get(`/schedules/themes?date=${date}`); -}; +// admin +export const fetchAdminSchedules = async (storeId: string, date?: string, themeId?: string): Promise => { + const queryParams: string[] = []; -export const findSchedules = async (date: string, themeId: string): Promise => { - return await apiClient.get(`/schedules?date=${date}&themeId=${themeId}`); -}; + if (date && date.trim() !== '') { + queryParams.push(`date=${date}`); + } + + if (themeId && themeId.trim() !== '') { + queryParams.push(`themeId=${themeId}`); + } + + // 기본 URL에 쿼리 파라미터 추가 + const baseUrl = `/admin/stores/${storeId}/schedules`; + const fullUrl = queryParams.length > 0 + ? `${baseUrl}?${queryParams.join('&')}` + : baseUrl; -export const findScheduleById = async (id: string): Promise => { - return await apiClient.get(`/schedules/${id}`); + return await apiClient.adminGet(fullUrl); } -export const createSchedule = async (request: ScheduleCreateRequest): Promise => { - return await apiClient.post('/schedules', request); +export const fetchScheduleAudit = async (scheduleId: string): Promise => { + return await apiClient.adminGet(`/admin/schedules/${scheduleId}/audits`); +} + +export const createSchedule = async (storeId: string, request: ScheduleCreateRequest): Promise => { + return await apiClient.adminPost(`/admin/stores/${storeId}/schedules`, request); }; export const updateSchedule = async (id: string, request: ScheduleUpdateRequest): Promise => { - await apiClient.patch(`/schedules/${id}`, request); + return await apiClient.adminPatch(`/admin/schedules/${id}`, request); }; export const deleteSchedule = async (id: string): Promise => { - await apiClient.del(`/schedules/${id}`); + return await apiClient.adminDel(`/admin/schedules/${id}`); }; +// public export const holdSchedule = async (id: string): Promise => { - await apiClient.patch(`/schedules/${id}/hold`, {}); + return await apiClient.post(`/schedules/${id}/hold`); +}; + +export const fetchSchedules = async (storeId: string, date: string): Promise => { + return await apiClient.get(`/stores/${storeId}/schedules?date=${date}`); }; diff --git a/frontend/src/api/schedule/scheduleTypes.ts b/frontend/src/api/schedule/scheduleTypes.ts index 9a08ac1e..0acf9f64 100644 --- a/frontend/src/api/schedule/scheduleTypes.ts +++ b/frontend/src/api/schedule/scheduleTypes.ts @@ -1,3 +1,5 @@ +import type { Difficulty } from '@_api/theme/themeTypes'; + export type ScheduleStatus = 'AVAILABLE' | 'HOLD' | 'RESERVED' | 'BLOCKED'; export const ScheduleStatus = { @@ -7,24 +9,11 @@ export const ScheduleStatus = { BLOCKED: 'BLOCKED' as ScheduleStatus, }; -export interface AvailableThemeIdListResponse { - themeIds: string[]; -} - -export interface ScheduleRetrieveResponse { - id: string; - time: string; // "HH:mm" - status: ScheduleStatus; -} - -export interface ScheduleRetrieveListResponse { - schedules: ScheduleRetrieveResponse[]; -} - +// Admin export interface ScheduleCreateRequest { - date: string; // "yyyy-MM-dd" - time: string; // "HH:mm" + date: string; themeId: string; + time: string; } export interface ScheduleCreateResponse { @@ -38,13 +27,29 @@ export interface ScheduleUpdateRequest { status?: ScheduleStatus; } -export interface ScheduleDetailRetrieveResponse { - id: string; - date: string; // "yyyy-MM-dd" - time: string; // "HH:mm" - status: ScheduleStatus; - createdAt: string; // or Date - createdBy: string; - updatedAt: string; // or Date - updatedBy: string; +export interface AdminScheduleSummaryResponse { + id: string, + themeName: string, + startFrom: string, + endAt: string, + status: ScheduleStatus, } + +export interface AdminScheduleSummaryListResponse { + schedules: AdminScheduleSummaryResponse[]; +} + +// Public +export interface ScheduleWithThemeResponse { + id: string, + startFrom: string, + endAt: string, + themeId: string, + themeName: string, + themeDifficulty: Difficulty, + status: ScheduleStatus +} + +export interface ScheduleWithThemeListResponse { + schedules: ScheduleWithThemeResponse[]; +} \ No newline at end of file diff --git a/frontend/src/api/store/storeAPI.ts b/frontend/src/api/store/storeAPI.ts new file mode 100644 index 00000000..80c9135c --- /dev/null +++ b/frontend/src/api/store/storeAPI.ts @@ -0,0 +1,48 @@ +import apiClient from '@_api/apiClient'; +import type { + SimpleStoreListResponse, + StoreCreateResponse, + StoreDetailResponse, + StoreInfoResponse, + StoreRegisterRequest, + UpdateStoreRequest +} from './storeTypes'; + +export const getStores = async (sidoCode?: string, sigunguCode?: string): Promise => { + const queryParams: string[] = []; + + if (sidoCode && sidoCode.trim() !== '') { + queryParams.push(`sidoCode=${sidoCode}`); + } + + if (sigunguCode && sigunguCode.trim() !== '') { + queryParams.push(`sigunguCode=${sigunguCode}`); + } + + const baseUrl = `/stores`; + const fullUrl = queryParams.length > 0 + ? `${baseUrl}?${queryParams.join('&')}` + : baseUrl; + + return await apiClient.get(fullUrl); +}; + +export const getStoreInfo = async (id: string): Promise => { + return await apiClient.get(`/stores/${id}`); +} + +export const getStoreDetail = async (id: string): Promise => { + return await apiClient.adminGet(`/admin/stores/${id}/detail`); +}; + +export const createStore = async (request: StoreRegisterRequest): Promise => { + return await apiClient.adminPost('/admin/stores', request); +}; + +export const updateStore = async (id: string, request: UpdateStoreRequest): Promise => { + await apiClient.adminPatch(`/admin/stores/${id}`, request); +}; + +export const deleteStore = async (id: string): Promise => { + await apiClient.adminPost(`/admin/stores/${id}/disable`, {}); +}; diff --git a/frontend/src/api/store/storeTypes.ts b/frontend/src/api/store/storeTypes.ts new file mode 100644 index 00000000..376549c4 --- /dev/null +++ b/frontend/src/api/store/storeTypes.ts @@ -0,0 +1,48 @@ +import {type AuditInfo} from '@_api/common/commonTypes'; +import type {RegionInfoResponse} from '@_api/region/regionTypes'; + +export interface SimpleStoreResponse { + id: string; + name: string; +} + +export interface SimpleStoreListResponse { + stores: SimpleStoreResponse[]; +} + +export interface StoreDetailResponse { + id: string; + name: string; + address: string; + contact: string; + businessRegNum: string; + region: RegionInfoResponse; + audit: AuditInfo; +} + +export interface StoreRegisterRequest { + name: string; + address: string; + contact: string; + businessRegNum: string; + regionCode: string; +} + +export interface UpdateStoreRequest { + name?: string; + address?: string; + contact?: string; + regionCode?: string; +} + +export interface StoreInfoResponse { + id: string; + name: string; + address: string; + contact: string; + businessRegNum: string; +} + +export interface StoreCreateResponse { + id: string; +} diff --git a/frontend/src/api/theme/themeAPI.ts b/frontend/src/api/theme/themeAPI.ts index 3db475d2..f0f6bdf9 100644 --- a/frontend/src/api/theme/themeAPI.ts +++ b/frontend/src/api/theme/themeAPI.ts @@ -1,38 +1,44 @@ import apiClient from '@_api/apiClient'; import type { - AdminThemeDetailRetrieveResponse, - AdminThemeSummaryRetrieveListResponse, + AdminThemeDetailResponse, + AdminThemeSummaryListResponse, + SimpleActiveThemeListResponse, ThemeCreateRequest, ThemeCreateResponse, ThemeIdListResponse, ThemeInfoListResponse, + ThemeInfoResponse, ThemeUpdateRequest } from './themeTypes'; -export const fetchAdminThemes = async (): Promise => { - return await apiClient.get('/admin/themes'); +export const fetchAdminThemes = async (): Promise => { + return await apiClient.adminGet('/admin/themes'); }; -export const fetchAdminThemeDetail = async (id: string): Promise => { - return await apiClient.get(`/admin/themes/${id}`); +export const fetchAdminThemeDetail = async (id: string): Promise => { + return await apiClient.adminGet(`/admin/themes/${id}`); }; export const createTheme = async (themeData: ThemeCreateRequest): Promise => { - return await apiClient.post('/admin/themes', themeData); + return await apiClient.adminPost('/admin/themes', themeData); }; export const updateTheme = async (id: string, themeData: ThemeUpdateRequest): Promise => { - await apiClient.patch(`/admin/themes/${id}`, themeData); + await apiClient.adminPatch(`/admin/themes/${id}`, themeData); }; export const deleteTheme = async (id: string): Promise => { - await apiClient.del(`/admin/themes/${id}`); + await apiClient.adminDel(`/admin/themes/${id}`); }; -export const fetchUserThemes = async (): Promise => { - return await apiClient.get('/themes'); +export const fetchActiveThemes = async (): Promise => { + return await apiClient.adminGet('/admin/themes/active'); }; -export const findThemesByIds = async (request: ThemeIdListResponse): Promise => { - return await apiClient.post('/themes/retrieve', request); +export const fetchThemesByIds = async (request: ThemeIdListResponse): Promise => { + return await apiClient.post('/themes/batch', request); }; + +export const fetchThemeById = async (id: string): Promise => { + return await apiClient.get(`/themes/${id}`); +} diff --git a/frontend/src/api/theme/themeTypes.ts b/frontend/src/api/theme/themeTypes.ts index ba28bc0d..2b56d825 100644 --- a/frontend/src/api/theme/themeTypes.ts +++ b/frontend/src/api/theme/themeTypes.ts @@ -1,20 +1,9 @@ +import type { AuditInfo } from '@_api/common/commonTypes'; + export interface AdminThemeDetailResponse { - id: string; - name: string; - description: string; - thumbnailUrl: string; - difficulty: Difficulty; - price: number; - minParticipants: number; - maxParticipants: number; - availableMinutes: number; - expectedMinutesFrom: number; - expectedMinutesTo: number; - isOpen: boolean; - createDate: string; // Assuming ISO string format - updatedDate: string; // Assuming ISO string format - createdBy: string; - updatedBy: string; + theme: ThemeInfoResponse; + isActive: boolean; + audit: AuditInfo } export interface ThemeCreateRequest { @@ -28,7 +17,7 @@ export interface ThemeCreateRequest { availableMinutes: number; expectedMinutesFrom: number; expectedMinutesTo: number; - isOpen: boolean; + isActive: boolean; } export interface ThemeCreateResponse { @@ -46,38 +35,19 @@ export interface ThemeUpdateRequest { availableMinutes?: number; expectedMinutesFrom?: number; expectedMinutesTo?: number; - isOpen?: boolean; + isActive?: boolean; } -export interface AdminThemeSummaryRetrieveResponse { +export interface AdminThemeSummaryResponse { id: string; name: string; difficulty: Difficulty; price: number; - isOpen: boolean; + isActive: boolean; } -export interface AdminThemeSummaryRetrieveListResponse { - themes: AdminThemeSummaryRetrieveResponse[]; -} - -export interface AdminThemeDetailRetrieveResponse { - id: string; - name: string; - description: string; - thumbnailUrl: string; - difficulty: Difficulty; - price: number; - minParticipants: number; - maxParticipants: number; - availableMinutes: number; - expectedMinutesFrom: number; - expectedMinutesTo: number; - isOpen: boolean; - createdAt: string; // LocalDateTime in Kotlin, map to string (ISO format) - createdBy: string; - updatedAt: string; // LocalDateTime in Kotlin, map to string (ISO format) - updatedBy: string; +export interface AdminThemeSummaryListResponse { + themes: AdminThemeSummaryResponse[]; } export interface ThemeInfoResponse { @@ -102,18 +72,34 @@ export interface ThemeIdListResponse { themeIds: string[]; } -// @ts-ignore export enum Difficulty { - VERY_EASY = '매우 쉬움', - EASY = '쉬움', - NORMAL = '보통', - HARD = '어려움', - VERY_HARD = '매우 어려움', + VERY_EASY = 'VERY_EASY', + EASY = 'EASY', + NORMAL = 'NORMAL', + HARD = 'HARD', + VERY_HARD = 'VERY_HARD', } +export const DifficultyKoreanMap: Record = { + [Difficulty.VERY_EASY]: '매우 쉬움', + [Difficulty.EASY]: '쉬움', + [Difficulty.NORMAL]: '보통', + [Difficulty.HARD]: '어려움', + [Difficulty.VERY_HARD]: '매우 어려움', +}; + export function mapThemeResponse(res: any): ThemeInfoResponse { return { ...res, difficulty: Difficulty[res.difficulty as keyof typeof Difficulty], } -} \ No newline at end of file +} + +export interface SimpleActiveThemeResponse { + id: string; + name: string; +} + +export interface SimpleActiveThemeListResponse { + themes: SimpleActiveThemeResponse[]; +} diff --git a/frontend/src/api/user/userAPI.ts b/frontend/src/api/user/userAPI.ts index 84a2422d..67236d75 100644 --- a/frontend/src/api/user/userAPI.ts +++ b/frontend/src/api/user/userAPI.ts @@ -2,9 +2,9 @@ import apiClient from "@_api/apiClient"; import type {UserContactRetrieveResponse, UserCreateRequest, UserCreateResponse} from "./userTypes"; export const signup = async (data: UserCreateRequest): Promise => { - return await apiClient.post('/users', data, false); + return await apiClient.post('/users', data); }; export const fetchContact = async (): Promise => { - return await apiClient.get('/users/contact', true); + return await apiClient.get('/users/contact'); } diff --git a/frontend/src/context/AdminAuthContext.tsx b/frontend/src/context/AdminAuthContext.tsx new file mode 100644 index 00000000..ba6c7cd1 --- /dev/null +++ b/frontend/src/context/AdminAuthContext.tsx @@ -0,0 +1,96 @@ +import { adminLogin as apiLogin, adminLogout as apiLogout } from '@_api/auth/authAPI'; +import { + type AdminLoginSuccessResponse, + type AdminType, + type LoginRequest, +} from '@_api/auth/authTypes'; +import React, { createContext, type ReactNode, useContext, useEffect, useState } from 'react'; + +interface AdminAuthContextType { + isAdmin: boolean; + name: string | null; + type: AdminType | null; + storeId: string | null; + loading: boolean; + login: (data: Omit) => Promise; + logout: () => Promise; +} + +const AdminAuthContext = createContext(undefined); + +export const AdminAuthProvider: React.FC<{ children: ReactNode }> = ({ children }) => { + const [isAdmin, setIsAdmin] = useState(false); + const [name, setName] = useState(null); + const [type, setType] = useState(null); + const [storeId, setStoreId] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + try { + const token = localStorage.getItem('adminAccessToken'); + const storedName = localStorage.getItem('adminName'); + const storedType = localStorage.getItem('adminType') as AdminType | null; + const storedStoreId = localStorage.getItem('adminStoreId'); + + if (token && storedName && storedType) { + setIsAdmin(true); + setName(storedName); + setType(storedType); + setStoreId(storedStoreId ? storedStoreId : null); + } + } catch (error) { + console.error("Failed to load admin auth state from storage", error); + } finally { + setLoading(false); + } + }, []); + + const login = async (data: Omit) => { + const response = await apiLogin(data); + + localStorage.setItem('adminAccessToken', response.accessToken); + localStorage.setItem('adminName', response.name); + localStorage.setItem('adminType', response.type); + if (response.storeId) { + localStorage.setItem('adminStoreId', response.storeId.toString()); + } else { + localStorage.removeItem('adminStoreId'); + } + + setIsAdmin(true); + setName(response.name); + setType(response.type); + setStoreId(response.storeId); + + return response; + }; + + const logout = async () => { + try { + await apiLogout(); + } finally { + localStorage.removeItem('adminAccessToken'); + localStorage.removeItem('adminName'); + localStorage.removeItem('adminType'); + localStorage.removeItem('adminStoreId'); + setIsAdmin(false); + setName(null); + setType(null); + setStoreId(null); + } + }; + + return ( + + {children} + + ); +}; + +export const useAdminAuth = (): AdminAuthContextType => { + const context = useContext(AdminAuthContext); + if (!context) { + throw new Error('useAdminAuth must be used within an AdminAuthProvider'); + } + return context; +}; diff --git a/frontend/src/context/AuthContext.tsx b/frontend/src/context/AuthContext.tsx index e220f436..0acfca2f 100644 --- a/frontend/src/context/AuthContext.tsx +++ b/frontend/src/context/AuthContext.tsx @@ -1,15 +1,13 @@ -import {checkLogin as apiCheckLogin, login as apiLogin, logout as apiLogout} from '@_api/auth/authAPI'; -import {type LoginRequest, type LoginSuccessResponse, PrincipalType} from '@_api/auth/authTypes'; -import React, {createContext, type ReactNode, useContext, useEffect, useState} from 'react'; +import { logout as apiLogout, userLogin as apiLogin } from '@_api/auth/authAPI'; +import { type LoginRequest, type UserLoginSuccessResponse } from '@_api/auth/authTypes'; +import React, { createContext, type ReactNode, useContext, useEffect, useState } from 'react'; interface AuthContextType { loggedIn: boolean; userName: string | null; - type: PrincipalType | null; - loading: boolean; - login: (data: LoginRequest) => Promise; + loading: boolean; + login: (data: Omit) => Promise; logout: () => Promise; - checkLogin: () => Promise; } const AuthContext = createContext(undefined); @@ -17,33 +15,33 @@ const AuthContext = createContext(undefined); export const AuthProvider: React.FC<{ children: ReactNode }> = ({ children }) => { const [loggedIn, setLoggedIn] = useState(false); const [userName, setUserName] = useState(null); - const [type, setType] = useState(null); - const [loading, setLoading] = useState(true); // Add loading state - - const checkLogin = async () => { - try { - const response = await apiCheckLogin(); - setLoggedIn(true); - setUserName(response.name); - setType(response.type); - } catch (error) { - setLoggedIn(false); - setUserName(null); - setType(null); - localStorage.removeItem('accessToken'); - } finally { - setLoading(false); // Set loading to false after check is complete - } - }; + const [loading, setLoading] = useState(true); useEffect(() => { - checkLogin(); + try { + const token = localStorage.getItem('accessToken'); + const storedUserName = localStorage.getItem('userName'); + + if (token && storedUserName) { + setLoggedIn(true); + setUserName(storedUserName); + } + } catch (error) { + console.error("Failed to load user auth state from storage", error); + } finally { + setLoading(false); + } }, []); - const login = async (data: LoginRequest) => { - const response = await apiLogin({ ...data }); + const login = async (data: Omit) => { + const response = await apiLogin(data); + + localStorage.setItem('accessToken', response.accessToken); + localStorage.setItem('userName', response.name); + setLoggedIn(true); - setType(data.principalType); + setUserName(response.name); + return response; }; @@ -51,15 +49,15 @@ export const AuthProvider: React.FC<{ children: ReactNode }> = ({ children }) => try { await apiLogout(); } finally { + localStorage.removeItem('accessToken'); + localStorage.removeItem('userName'); setLoggedIn(false); setUserName(null); - setType(null); - localStorage.removeItem('accessToken'); } }; return ( - + {children} ); diff --git a/frontend/src/css/admin-schedule-page.css b/frontend/src/css/admin-schedule-page.css index 350d6c33..e559a855 100644 --- a/frontend/src/css/admin-schedule-page.css +++ b/frontend/src/css/admin-schedule-page.css @@ -1,11 +1,13 @@ +/* New CSS content */ .admin-schedule-container { padding: 2rem; max-width: 1200px; margin: 0 auto; + font-size: 0.95rem; /* Slightly smaller base font */ } .page-title { - font-size: 2rem; + font-size: 1.8rem; /* smaller */ font-weight: bold; margin-bottom: 2rem; text-align: center; @@ -18,7 +20,7 @@ padding: 1.5rem; background-color: #f9f9f9; border-radius: 8px; - align-items: center; + align-items: flex-end; /* Align to bottom */ } .schedule-controls .form-group { @@ -26,18 +28,29 @@ flex-direction: column; } +/* Width adjustments */ +.schedule-controls .store-selector-group, +.schedule-controls .date-selector-group { + flex: 1 1 180px; +} + +.schedule-controls .theme-selector-group { + flex: 2 1 300px; +} + + .schedule-controls .form-label { - font-size: 0.9rem; + font-size: 0.85rem; /* smaller */ margin-bottom: 0.5rem; color: #555; } .schedule-controls .form-input, .schedule-controls .form-select { - padding: 0.75rem; + padding: 0.6rem; /* smaller */ border: 1px solid #ccc; border-radius: 4px; - font-size: 1rem; + font-size: 0.9rem; /* smaller */ } .section-card { @@ -63,10 +76,11 @@ table { } th, td { - padding: 1rem; + padding: 0.8rem; /* smaller */ text-align: left; border-bottom: 1px solid #eee; vertical-align: middle; + font-size: 0.9rem; /* smaller */ } th { @@ -75,11 +89,11 @@ th { } .btn { - padding: 0.5rem 1rem; + padding: 0.4rem 0.8rem; /* smaller */ border: none; border-radius: 4px; cursor: pointer; - font-size: 0.9rem; + font-size: 0.85rem; /* smaller */ transition: background-color 0.2s; white-space: nowrap; } @@ -174,8 +188,8 @@ th { font-size: 1rem; border: 1px solid #dee2e6; border-radius: 4px; - height: 3rem; - box-sizing: border-box; /* Ensures padding/border are included in height */ + height: auto; /* remove fixed height */ + box-sizing: border-box; } .details-form-container .button-group { @@ -190,7 +204,7 @@ th { border: 1px solid #dee2e6; border-radius: 8px; background-color: #fff; - margin-bottom: 1.5rem; /* Add margin to separate from buttons */ + margin-bottom: 1.5rem; } .audit-title { @@ -211,4 +225,96 @@ th { .audit-body p strong { color: #212529; margin-right: 0.5rem; -} \ No newline at end of file +} + +.theme-selector-button-group { + display: flex; + flex-direction: row !important; + align-items: flex-end; + gap: 0.5rem; +} + +.theme-selector-button-group .form-select { + flex-grow: 1; +} + +/* Modal Styles */ +.modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.6); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.modal-content { + background-color: #ffffff !important; + padding: 2rem !important; + border-radius: 8px !important; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3) !important; + width: 90% !important; + max-width: 600px !important; + position: relative !important; +} + +.modal-close-btn { + position: absolute; + top: 1rem; + right: 1rem; + background: none; + border: none; + font-size: 1.5rem; + cursor: pointer; + color: #888; +} + +.modal-title { + font-size: 1.75rem; + font-weight: bold; + margin-top: 0; + margin-bottom: 1.5rem; + text-align: center; +} + +.theme-modal-thumbnail { + width: 100%; + max-height: 300px; + object-fit: cover; + border-radius: 8px; + margin-bottom: 1.5rem; +} + +.theme-modal-description { + font-size: 1rem; + line-height: 1.6; + color: #555; + margin-bottom: 1.5rem; +} + +.theme-details-button { + white-space: nowrap; +} + +.view-mode-buttons { + justify-content: flex-end; +} + +/* Added for modal info alignment */ +.modal-info-grid p { + display: flex; + align-items: flex-start; + margin: 0.6rem 0; + line-height: 1.5; +} +.modal-info-grid p strong { + flex: 0 0 130px; /* fixed width for labels */ + font-weight: 600; +} +.modal-info-grid p span { + flex: 1; +} diff --git a/frontend/src/css/admin-store-page.css b/frontend/src/css/admin-store-page.css new file mode 100644 index 00000000..f8d5c0a4 --- /dev/null +++ b/frontend/src/css/admin-store-page.css @@ -0,0 +1,207 @@ +/* /src/css/admin-store-page.css */ +.admin-store-container { + max-width: 1400px; + margin: 40px auto; + padding: 40px; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + background-color: #f4f6f8; + border-radius: 16px; +} + +.admin-store-container .page-title { + font-size: 32px; + font-weight: 700; + color: #333d4b; + margin-bottom: 30px; + text-align: center; +} + +.filter-controls { + display: flex; + gap: 1rem; + margin-bottom: 1.5rem; + padding: 1.5rem; + background-color: #f9f9f9; + border-radius: 8px; +} + +.filter-controls .form-group { + flex: 1; +} + +.section-card { + background-color: #ffffff; + border-radius: 12px; + padding: 24px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); +} + +.table-header { + display: flex; + justify-content: flex-end; + margin-bottom: 20px; +} + +.table-container table { + width: 100%; + border-collapse: collapse; + font-size: 15px; +} + +.table-container th, +.table-container td { + padding: 12px 16px; + text-align: left; + border-bottom: 1px solid #e5e8eb; + vertical-align: middle; +} + +.table-container th { + background-color: #f9fafb; + color: #505a67; + font-weight: 600; +} + +.table-container tr:last-child td { + border-bottom: none; +} + +.table-container tr:hover { + background-color: #f4f6f8; +} + +.form-input, .form-select, .form-textarea { + width: 100%; + padding: 10px 12px; + font-size: 15px; + border: 1px solid #E5E8EB; + border-radius: 8px; + box-sizing: border-box; + transition: border-color 0.2s, box-shadow 0.2s; +} + +.form-input:focus, .form-select:focus, .form-textarea:focus { + outline: none; + border-color: #3182F6; + box-shadow: 0 0 0 3px rgba(49, 130, 246, 0.2); +} + +.btn { + padding: 8px 16px; + font-size: 15px; + font-weight: 600; + border-radius: 8px; + border: none; + cursor: pointer; + transition: background-color 0.2s; +} + +.btn-primary { + background-color: #3182F6; + color: #ffffff; +} + +.btn-primary:hover { + background-color: #1B64DA; +} + +.btn-secondary { + background-color: #F2F4F6; + color: #4E5968; +} + +.btn-secondary:hover { + background-color: #E5E8EB; +} + +.btn-danger { + background-color: #e53e3e; + color: white; +} + +.btn-danger:hover { + background-color: #c53030; +} + +.action-buttons { + display: flex; + gap: 0.5rem; +} + +.details-row td { + padding: 0; + background-color: #f8f9fa; +} + +.details-container { + padding: 1.5rem; +} + +.details-form-card { + background-color: #fff; + padding: 1.5rem; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05); + margin-bottom: 1.5rem; +} + +.form-row { + display: flex; + gap: 1.5rem; + margin-bottom: 1rem; +} + +.form-group { + flex: 1; +} + +.form-label { + display: block; + margin-bottom: 8px; + font-size: 14px; + font-weight: 600; + color: #4E5968; +} + +.button-group { + display: flex; + justify-content: flex-end; + gap: 0.75rem; + margin-top: 1.5rem; +} + +.audit-info { + padding: 1.5rem; + border: 1px solid #dee2e6; + border-radius: 8px; + background-color: #fff; + margin-bottom: 1.5rem; +} + +.audit-title { + font-size: 1.1rem; + font-weight: 600; + color: #343a40; + margin-bottom: 1rem; + padding-bottom: 0.75rem; + border-bottom: 1px solid #dee2e6; +} + +.audit-body p { + margin: 0.5rem 0; + font-size: 0.9rem; + color: #495057; +} + +.audit-body p strong { + color: #212529; + margin-right: 0.5rem; +} + +.add-store-form { + padding: 1.5rem; + background-color: #fdfdff; + border: 1px solid #e5e8eb; + border-radius: 8px; + margin-bottom: 2rem; +} diff --git a/frontend/src/css/home-page-v2.css b/frontend/src/css/home-page-v2.css index 2728cb68..6df4daae 100644 --- a/frontend/src/css/home-page-v2.css +++ b/frontend/src/css/home-page-v2.css @@ -81,15 +81,15 @@ } .theme-modal-content { - background-color: #ffffff; - padding: 30px; - border-radius: 16px; - width: 90%; - max-width: 600px; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); - display: flex; - flex-direction: column; - gap: 20px; + background-color: #ffffff !important; + padding: 30px !important; + border-radius: 16px !important; + width: 90% !important; + max-width: 600px !important; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2) !important; + display: flex !important; + flex-direction: column !important; + gap: 20px !important; } .modal-thumbnail { @@ -163,3 +163,18 @@ .modal-button.close:hover { background-color: #5a6268; } + +/* Added for modal info alignment */ +.modal-info-grid p { + display: flex; + align-items: flex-start; + margin: 0.6rem 0; + line-height: 1.5; +} +.modal-info-grid p strong { + flex: 0 0 130px; /* fixed width for labels */ + font-weight: 600; +} +.modal-info-grid p span { + flex: 1; +} diff --git a/frontend/src/css/my-reservation-v2.css b/frontend/src/css/my-reservation-v2.css index b6fa89b4..afaa66ea 100644 --- a/frontend/src/css/my-reservation-v2.css +++ b/frontend/src/css/my-reservation-v2.css @@ -49,10 +49,24 @@ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } +.summary-subdetails-v2 { + display: flex; + flex-direction: column; + margin: 0px; + gap: 0px; +} + +.summary-store-name-v2 { + font-size: 16px; + font-weight: bold; + color: #505a67; + margin: 0 0 5px 0; +} + .summary-details-v2 { display: flex; flex-direction: column; - gap: 4px; + gap: 10px; } .summary-theme-name-v2 { @@ -65,15 +79,15 @@ .summary-datetime-v2 { font-size: 16px; color: #505a67; - margin: 0; + margin-bottom: 5px; } /* --- Status Badge --- */ .card-status-badge { position: absolute; - top: 15px; - right: 15px; - padding: 4px 10px; + top: 30px; + right: 10px; + padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 700; @@ -177,16 +191,16 @@ } .modal-content-v2 { - background: #ffffff; - padding: 30px; - border-radius: 16px; - width: 90%; - max-width: 500px; - position: relative; - box-shadow: 0 5px 15px rgba(0,0,0,0.3); - animation: slide-up 0.3s ease-out; - max-height: 90vh; /* Prevent modal from being too tall */ - overflow-y: auto; /* Allow scrolling for long content */ + background: #ffffff !important; + padding: 30px !important; + border-radius: 16px !important; + width: 90% !important; + max-width: 500px !important; + position: relative !important; + box-shadow: 0 5px 15px rgba(0,0,0,0.3) !important; + animation: slide-up 0.3s ease-out !important; + max-height: 90vh !important; /* Prevent modal from being too tall */ + overflow-y: auto !important; /* Allow scrolling for long content */ } @keyframes slide-up { @@ -240,13 +254,6 @@ color: #505a67; } -.modal-section-v2 p strong { - color: #333d4b; - font-weight: 600; - min-width: 100px; - display: inline-block; -} - .cancellation-section-v2 { background-color: #fcf2f2; padding: 15px; @@ -346,3 +353,18 @@ border-color: #007bff; box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25); } + +/* Added for modal info alignment */ +.modal-info-grid p { + display: flex; + align-items: flex-start; + margin: 0.6rem 0; + line-height: 1.5; +} +.modal-info-grid p strong { + flex: 0 0 130px; /* fixed width for labels */ + font-weight: 600; +} +.modal-info-grid p span { + flex: 1; +} diff --git a/frontend/src/css/reservation-v2-1.css b/frontend/src/css/reservation-v2-1.css index e8ccbeeb..93fda84c 100644 --- a/frontend/src/css/reservation-v2-1.css +++ b/frontend/src/css/reservation-v2-1.css @@ -1,43 +1,43 @@ /* General Container */ .reservation-v21-container { - padding: 40px; + width: 100%; max-width: 900px; - margin: 40px auto; - background-color: #ffffff; - border-radius: 16px; - box-shadow: 0 8px 20px rgba(0, 0, 0, 0.07); - font-family: 'Toss Product Sans', sans-serif; - color: #333D4B; + margin: 2rem auto; + padding: 2rem; + font-family: 'Pretendard', sans-serif; + background-color: #fff; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); } .page-title { - font-size: 28px; - font-weight: 700; - margin-bottom: 40px; - color: #191F28; text-align: center; + font-size: 2rem; + font-weight: 700; + margin-bottom: 2.5rem; + color: #212529; } -/* Step Sections */ +/* Step Section */ .step-section { - margin-bottom: 40px; - padding: 24px; - border: 1px solid #E5E8EB; - border-radius: 12px; - transition: all 0.3s ease; + margin-bottom: 3rem; + padding: 1.5rem; + border: 1px solid #f1f3f5; + border-radius: 8px; + background-color: #f8f9fa; } .step-section.disabled { opacity: 0.5; pointer-events: none; - background-color: #F9FAFB; } .step-section h3 { - font-size: 20px; + font-size: 1.5rem; font-weight: 600; - margin-bottom: 20px; - color: #191F28; + margin-top: 0; + margin-bottom: 1.5rem; + color: #343a40; } /* Date Carousel */ @@ -45,274 +45,241 @@ display: flex; align-items: center; justify-content: space-between; - gap: 10px; - margin: 20px 0; + margin-bottom: 1rem; +} + +.carousel-arrow { + background: none; + border: none; + font-size: 2rem; + color: #868e96; + cursor: pointer; + padding: 0 1rem; } .date-options-container { display: flex; - gap: 8px; - overflow-x: hidden; - flex-grow: 1; - justify-content: space-between; - margin: 0px 15px; + gap: 10px; + overflow-x: auto; + -ms-overflow-style: none; + scrollbar-width: none; } -.carousel-arrow, .today-button { - background-color: #F2F4F6; - border: 1px solid #E5E8EB; - border-radius: 50%; - width: 36px; - height: 36px; - font-size: 20px; - font-weight: bold; - color: #4E5968; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - flex-shrink: 0; - transition: background-color 0.2s; -} - -.today-button { - border-radius: 8px; - font-size: 14px; - font-weight: 600; - width: auto; - padding: 0 15px; -} - -.carousel-arrow:hover, .today-button:hover { - background-color: #E5E8EB; +.date-options-container::-webkit-scrollbar { + display: none; } .date-option { + text-align: center; cursor: pointer; - padding: 8px; - border-radius: 8px; + padding: 10px; + border-radius: 50%; + width: 60px; + height: 60px; display: flex; flex-direction: column; - align-items: center; justify-content: center; - border: 1px solid transparent; - transition: all 0.3s ease; - width: 60px; - flex-shrink: 0; -} - -.date-option:hover { - background-color: #f0f0f0; -} - -.date-option.active { - border: 1px solid #007bff; - background-color: #e7f3ff; + align-items: center; + transition: background-color 0.3s, color 0.3s; } .date-option .day-of-week { - font-size: 12px; - color: #888; -} - -.date-option.active .day-of-week { - color: #007bff; + font-size: 0.8rem; + margin-bottom: 4px; } .date-option .day-circle { - font-size: 16px; - font-weight: bold; - width: 32px; - height: 32px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - margin-top: 4px; - background-color: #f0f0f0; - color: #333; + font-weight: 600; } -.date-option.active .day-circle { - background-color: #007bff; +.date-option.active { + background-color: #0064FF; color: white; } +.date-option:not(.active):hover { + background-color: #f1f3f5; +} + .date-option.disabled { - opacity: 0.5; + color: #ced4da; cursor: not-allowed; - pointer-events: none; } -.date-option.disabled .day-circle { - background-color: #E5E8EB; - color: #B0B8C1; -} - - -/* Theme List */ -.theme-list { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); - gap: 16px; -} - -.theme-card { +.today-button { + background-color: #f8f9fa; + border: 1px solid #dee2e6; + border-radius: 20px; + padding: 0.5rem 1rem; cursor: pointer; - border-radius: 12px; - overflow: hidden; - border: 2px solid #E5E8EB; - transition: all 0.2s ease-in-out; + margin-left: 1rem; + font-weight: 500; +} + +/* --- Region & Store Selectors --- */ +.region-store-selectors { + display: flex; + gap: 1rem; + margin-bottom: 1.5rem; +} + +.region-store-selectors select { + flex: 1; + padding: 0.75rem; + border: 1px solid #ddd; + border-radius: 8px; background-color: #fff; + font-size: 1rem; + cursor: pointer; + transition: border-color 0.2s; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23868e96%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'); + background-repeat: no-repeat; + background-position: right .7em top 50%; + background-size: .65em auto; +} + +.region-store-selectors select:disabled { + background-color: #f8f9fa; + cursor: not-allowed; + color: #adb5bd; +} + +.region-store-selectors select:focus { + outline: none; + border-color: #0064FF; +} + +/* --- Schedule List --- */ +.schedule-list { display: flex; flex-direction: column; + gap: 1.5rem; } -.theme-card:hover { - transform: translateY(-4px); - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); +.theme-schedule-group { + background-color: #fff; + border: 1px solid #e9ecef; + border-radius: 8px; + padding: 1.5rem; } -.theme-card.active { - border-color: #3182F6; - box-shadow: 0 0 0 3px rgba(49, 130, 246, 0.2); -} - -.theme-thumbnail { - width: 100%; - height: 120px; - object-fit: cover; -} - -.theme-info { - padding: 16px; +.theme-header { display: flex; - flex-direction: column; - flex-grow: 1; + justify-content: space-between; + align-items: center; + padding-bottom: 1rem; + margin-bottom: 1rem; + border-bottom: 1px solid #f1f3f5; } -.theme-info h4 { - font-size: 16px; - font-weight: 600; - margin-bottom: 8px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.theme-info p { - font-size: 14px; - color: #6B7684; +.theme-header h4 { margin: 0; -} - -.theme-meta { - font-size: 14px; - color: #4E5968; - margin-bottom: 12px; - flex-grow: 1; -} - -.theme-meta p { - margin: 2px 0; -} -.theme-meta strong { - color: #333D4B; + font-size: 1.25rem; + font-weight: 600; + color: #343a40; } .theme-detail-button { - width: 100%; - padding: 8px; - font-size: 14px; - font-weight: 600; - border: none; - background-color: #F2F4F6; - color: #4E5968; - border-radius: 8px; + padding: 0.5rem 1rem; + font-size: 0.9rem; + background-color: transparent; + color: #0064FF; + border: 1px solid #0064FF; + border-radius: 6px; cursor: pointer; - transition: background-color 0.2s; + font-weight: 600; + transition: background-color 0.2s, color 0.2s; } .theme-detail-button:hover { - background-color: #E5E8EB; + background-color: #0064FF; + color: #fff; } /* Time Slots */ .time-slots { display: grid; - grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); - gap: 12px; + grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); + gap: 0.75rem; } .time-slot { - cursor: pointer; - padding: 16px; - border-radius: 8px; + padding: 0.75rem; + border: 1px solid #dee2e6; + border-radius: 6px; text-align: center; - background-color: #F2F4F6; - font-weight: 600; - transition: all 0.2s ease-in-out; - position: relative; + cursor: pointer; + transition: all 0.2s; + background-color: #fff; } -.time-slot:hover { - background-color: #E5E8EB; +.time-slot:hover:not(.disabled) { + border-color: #0064FF; + color: #0064FF; } .time-slot.active { - background-color: #3182F6; - color: #ffffff; + background-color: #0064FF; + color: white; + border-color: #0064FF; + font-weight: 600; } .time-slot.disabled { - background-color: #F9FAFB; - color: #B0B8C1; + background-color: #f8f9fa; + color: #adb5bd; cursor: not-allowed; text-decoration: line-through; } .time-availability { - font-size: 12px; display: block; + font-size: 0.8rem; margin-top: 4px; - font-weight: 500; } .no-times { + color: #868e96; + padding: 2rem; text-align: center; - padding: 20px; - color: #8A94A2; + background-color: #fff; + border-radius: 8px; } -/* Next Step Button */ +/* --- Next Step Button --- */ .next-step-button-container { - display: flex; - justify-content: flex-end; - margin-top: 30px; + margin-top: 2rem; + text-align: center; } .next-step-button { - padding: 14px 28px; - font-size: 18px; + width: 100%; + max-width: 400px; + padding: 1rem; + font-size: 1.2rem; font-weight: 700; + color: #fff; + background-color: #0064FF; border: none; - background-color: #3182F6; - color: #ffffff; - border-radius: 12px; + border-radius: 8px; cursor: pointer; transition: background-color 0.2s; } +.next-step-button:hover:not(:disabled) { + background-color: #0053d1; +} + .next-step-button:disabled { - background-color: #B0B8C1; + background-color: #a0a0a0; cursor: not-allowed; } -.next-step-button:hover:not(:disabled) { - background-color: #1B64DA; -} -/* Modal Styles */ +/* --- Modal Styles --- */ .modal-overlay { position: fixed; top: 0; @@ -328,170 +295,158 @@ .modal-content { background-color: #ffffff !important; - padding: 32px !important; - border-radius: 16px !important; + padding: 2rem !important; + border-radius: 12px !important; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3) !important; width: 90% !important; max-width: 500px !important; position: relative !important; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important; + max-height: 90vh !important; + overflow-y: auto !important; } .modal-close-button { position: absolute; - top: 16px; - right: 16px; + top: 1rem; + right: 1rem; background: none; border: none; - font-size: 24px; + font-size: 1.5rem; + color: #868e96; cursor: pointer; - color: #8A94A2; } .modal-theme-thumbnail { width: 100%; height: 200px; object-fit: cover; - border-radius: 12px; - margin-bottom: 24px; + border-radius: 8px; + margin-bottom: 1.5rem; } .modal-content h2 { - font-size: 24px; - font-weight: 700; - margin-bottom: 24px; - color: #191F28; + margin-top: 0; + margin-bottom: 2rem; + text-align: center; } .modal-section { - margin-bottom: 20px; + margin-bottom: 1.5rem; + padding-bottom: 1.5rem; + border-bottom: 1px solid #f1f3f5; +} + +.modal-section:last-child { + border-bottom: none; + margin-bottom: 0; + padding-bottom: 0; } .modal-section h3 { - font-size: 18px; - font-weight: 600; - margin-bottom: 12px; - border-bottom: 1px solid #E5E8EB; - padding-bottom: 8px; + margin-top: 0; + margin-bottom: 1rem; + font-size: 1.1rem; + color: #495057; } .modal-section p { - font-size: 16px; + margin: 0.5rem 0; + color: #495057; line-height: 1.6; - margin-bottom: 8px; - color: #4E5968; -} - -.modal-section p strong { - color: #333D4B; - margin-right: 8px; } .modal-actions { display: flex; justify-content: flex-end; - gap: 12px; - margin-top: 30px; + gap: 1rem; + margin-top: 2rem; } -.modal-actions button { - padding: 12px 24px; - font-size: 16px; - font-weight: 600; +.modal-actions .cancel-button, +.modal-actions .confirm-button { + padding: 0.75rem 1.5rem; border-radius: 8px; - cursor: pointer; border: none; - transition: background-color 0.2s; + font-size: 1rem; + font-weight: 600; + cursor: pointer; } .modal-actions .cancel-button { - background-color: #E5E8EB; - color: #4E5968; -} -.modal-actions .cancel-button:hover { - background-color: #D1D6DB; + background-color: #f1f3f5; + color: #495057; } .modal-actions .confirm-button { - background-color: #3182F6; - color: #ffffff; -} -.modal-actions .confirm-button:hover { - background-color: #1B64DA; + background-color: #0064FF; + color: #fff; } -/* Styles for ReservationFormPage */ +/* --- Form Styles for ReservationFormPage --- */ .form-group { - margin-bottom: 20px; + margin-bottom: 1rem; } .form-group label { display: block; - font-weight: bold; - margin-bottom: 8px; - color: #333; + margin-bottom: 0.5rem; + font-weight: 600; + color: #495057; } -.form-group input[type="text"], -.form-group input[type="tel"], -.form-group input[type="number"], -.form-group textarea { +.form-input { width: 100%; - padding: 12px; - border: 1px solid #ccc; + padding: 0.75rem; + border: 1px solid #ddd; border-radius: 8px; - font-size: 16px; - box-sizing: border-box; - transition: border-color 0.2s, box-shadow 0.2s; + font-size: 1rem; } -.form-group input:focus, .form-group textarea:focus { - outline: none; - border-color: #3182F6; - box-shadow: 0 0 0 3px rgba(49, 130, 246, 0.2); -} - -.form-group textarea { - resize: vertical; - min-height: 100px; -} - -.participant-control { - display: flex; - align-items: center; -} - -.participant-control input { +/* Success Page */ +.success-icon { + font-size: 4rem; + color: #0064FF; text-align: center; - border-left: none; - border-right: none; - width: 60px; - border-radius: 0; + margin-bottom: 1.5rem; } -.participant-control button { - width: 44px; - height: 44px; - border: 1px solid #ccc; - background-color: #f0f0f0; - font-size: 20px; - cursor: pointer; +.success-page-actions { + display: flex; + justify-content: center; + gap: 1rem; + margin-top: 2.5rem; +} + +.success-page-actions .action-button { + padding: 0.8rem 1.6rem; + border-radius: 8px; + text-decoration: none; + font-size: 1rem; + font-weight: 600; transition: background-color 0.2s; } -.participant-control button:hover:not(:disabled) { - background-color: #e0e0e0; +.success-page-actions .action-button.secondary { + background-color: #f1f3f5; + color: #495057; } -.participant-control button:disabled { - background-color: #e9ecef; - cursor: not-allowed; - color: #aaa; +.success-page-actions .action-button:not(.secondary) { + background-color: #0064FF; + color: #fff; } -.participant-control button:first-of-type { - border-radius: 8px 0 0 8px; +/* Added for modal info alignment */ +.modal-info-grid p { + display: flex; + align-items: flex-start; + margin: 0.6rem 0; + line-height: 1.5; } - -.participant-control button:last-of-type { - border-radius: 0 8px 8px 0; +.modal-info-grid p strong { + flex: 0 0 130px; /* fixed width for labels */ + font-weight: 600; +} +.modal-info-grid p span { + flex: 1; } diff --git a/frontend/src/css/signup-page-v2.css b/frontend/src/css/signup-page-v2.css index 7918185b..8d95c48b 100644 --- a/frontend/src/css/signup-page-v2.css +++ b/frontend/src/css/signup-page-v2.css @@ -68,4 +68,13 @@ color: #E53E3E; font-size: 12px; margin-top: 4px; -} \ No newline at end of file +} + +.region-select-group { + display: flex; + gap: 10px; +} + +.region-select-group select { + flex: 1; +} diff --git a/frontend/src/pages/HomePage.tsx b/frontend/src/pages/HomePage.tsx index a5c22119..e16e9d9c 100644 --- a/frontend/src/pages/HomePage.tsx +++ b/frontend/src/pages/HomePage.tsx @@ -2,8 +2,8 @@ import {fetchMostReservedThemeIds} from '@_api/reservation/reservationAPI'; import '@_css/home-page-v2.css'; import React, {useEffect, useState} from 'react'; import {useNavigate} from 'react-router-dom'; -import {findThemesByIds} from '@_api/theme/themeAPI'; -import {mapThemeResponse, type ThemeInfoResponse} from '@_api/theme/themeTypes'; +import {fetchThemesByIds} from '@_api/theme/themeAPI'; +import {DifficultyKoreanMap, mapThemeResponse, type ThemeInfoResponse} from '@_api/theme/themeTypes'; const HomePage: React.FC = () => { const [ranking, setRanking] = useState([]); @@ -25,7 +25,7 @@ const HomePage: React.FC = () => { if (themeIds === undefined) return; if (themeIds.length === 0) return; - const response = await findThemesByIds({ themeIds: themeIds }); + const response = await fetchThemesByIds({ themeIds: themeIds }); setRanking(response.themes.map(mapThemeResponse)); } catch (err) { console.error('Error fetching ranking:', err); @@ -71,11 +71,12 @@ const HomePage: React.FC = () => {

{selectedTheme.name}

{selectedTheme.description}

-
-

난이도: {selectedTheme.difficulty}

-

가격: {selectedTheme.price.toLocaleString()}원

-

예상 시간: {selectedTheme.expectedMinutesFrom} ~ {selectedTheme.expectedMinutesTo}분

-

이용 가능 인원: {selectedTheme.minParticipants} ~ {selectedTheme.maxParticipants}명

+
+

난이도:{DifficultyKoreanMap[selectedTheme.difficulty]}

+

이용 가능 인원:{selectedTheme.minParticipants} ~ {selectedTheme.maxParticipants}명

+

1인당 요금:{selectedTheme.price.toLocaleString()}원

+

예상 시간:{selectedTheme.expectedMinutesFrom} ~ {selectedTheme.expectedMinutesTo}분

+

이용 가능 시간:{selectedTheme.availableMinutes}분

diff --git a/frontend/src/pages/LoginPage.tsx b/frontend/src/pages/LoginPage.tsx index db4704d3..61474db7 100644 --- a/frontend/src/pages/LoginPage.tsx +++ b/frontend/src/pages/LoginPage.tsx @@ -15,11 +15,11 @@ const LoginPage: React.FC = () => { const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); try { - const principalType = from.startsWith('/admin') ? 'ADMIN' : 'USER'; - await login({ account: email, password: password, principalType: principalType }); + await login({ account: email, password: password }); alert('로그인에 성공했어요!'); - navigate(from, { replace: true }); + const redirectTo = from.startsWith('/admin') ? '/' : from; + navigate(redirectTo, { replace: true }); } catch (error: any) { const message = error.response?.data?.message || '로그인에 실패했어요. 이메일과 비밀번호를 확인해주세요.'; alert(message); diff --git a/frontend/src/pages/MyReservationPage.tsx b/frontend/src/pages/MyReservationPage.tsx index d25d07f8..539f2b8b 100644 --- a/frontend/src/pages/MyReservationPage.tsx +++ b/frontend/src/pages/MyReservationPage.tsx @@ -1,17 +1,18 @@ -import {cancelPayment} from '@_api/payment/paymentAPI'; -import type {PaymentRetrieveResponse} from '@_api/payment/PaymentTypes'; -import {cancelReservation, fetchDetailById, fetchSummaryByMember} from '@_api/reservation/reservationAPI'; +import { cancelPayment } from '@_api/payment/paymentAPI'; +import type { PaymentRetrieveResponse } from '@_api/payment/PaymentTypes'; +import { cancelReservation, fetchDetailById, fetchAllOverviewByUser } from '@_api/reservation/reservationAPI'; import { - type ReservationDetail, - ReservationStatus, - type ReservationSummaryRetrieveResponse + ReservationStatus, + type ReservationDetail, + type ReservationOverviewResponse } from '@_api/reservation/reservationTypes'; -import React, {useEffect, useState} from 'react'; import '@_css/my-reservation-v2.css'; +import { formatDate, formatDisplayDateTime, formatTime } from '@_util/DateTimeFormatter'; +import React, { useEffect, useState } from 'react'; -const getReservationStatus = (reservation: ReservationSummaryRetrieveResponse): { className: string, text: string } => { +const getReservationStatus = (reservation: ReservationOverviewResponse): { className: string, text: string } => { const now = new Date(); - const reservationDateTime = new Date(`${reservation.date}T${reservation.startAt}`); + const reservationDateTime = new Date(`${reservation.date}T${reservation.startFrom}`); switch (reservation.status) { case ReservationStatus.CANCELED: @@ -22,81 +23,12 @@ const getReservationStatus = (reservation: ReservationSummaryRetrieveResponse): } return { className: 'status-confirmed', text: '예약확정' }; case ReservationStatus.PENDING: - return { className: 'status-pending', text: '입금대기' }; + return { className: 'status-pending', text: '입금대기' }; default: return { className: `status-${reservation.status.toLowerCase()}`, text: reservation.status }; } }; -const formatDisplayDateTime = (dateTime: any): string => { - let date: Date; - - if (typeof dateTime === 'string') { - // ISO 문자열 형식 처리 (LocalDateTime, OffsetDateTime 모두 포함) - date = new Date(dateTime); - } else if (typeof dateTime === 'number') { - // Unix 타임스탬프(초) 형식 처리 - date = new Date(dateTime * 1000); - } else if (Array.isArray(dateTime) && dateTime.length >= 6) { - // 배열 형식 처리: [year, month, day, hour, minute, second, nanosecond?] - const year = dateTime[0]; - const month = dateTime[1] - 1; // JS Date의 월은 0부터 시작 - const day = dateTime[2]; - const hour = dateTime[3]; - const minute = dateTime[4]; - const second = dateTime[5]; - const millisecond = dateTime.length > 6 ? Math.floor(dateTime[6] / 1000000) : 0; - date = new Date(year, month, day, hour, minute, second, millisecond); - } else { - return '유효하지 않은 날짜 형식'; - } - - if (isNaN(date.getTime())) { - return '유효하지 않은 날짜'; - } - - const options: Intl.DateTimeFormatOptions = { - year: 'numeric', - month: 'long', - day: 'numeric', - hour: 'numeric', - minute: 'numeric', - hour12: true, - second: 'numeric' - }; - return new Intl.DateTimeFormat('ko-KR', options).format(date); -}; - -const formatCardDateTime = (dateStr: string, timeStr: string): string => { - const date = new Date(`${dateStr}T${timeStr}`); - const currentYear = new Date().getFullYear(); - const reservationYear = date.getFullYear(); - - const days = ['일', '월', '화', '수', '목', '금', '토']; - const dayOfWeek = days[date.getDay()]; - const month = date.getMonth() + 1; - const day = date.getDate(); - let hours = date.getHours(); - const minutes = date.getMinutes(); - const ampm = hours >= 12 ? '오후' : '오전'; - hours = hours % 12; - hours = hours ? hours : 12; - - let datePart = ''; - if (currentYear === reservationYear) { - datePart = `${month}월 ${day}일(${dayOfWeek})`; - } else { - datePart = `${reservationYear}년 ${month}월 ${day}일(${dayOfWeek})`; - } - - let timePart = `${ampm} ${hours}시`; - if (minutes !== 0) { - timePart += ` ${minutes}분`; - } - - return `${datePart} ${timePart}`; -}; - // --- Cancellation View Component --- const CancellationView: React.FC<{ reservation: ReservationDetail; @@ -117,10 +49,10 @@ const CancellationView: React.FC<{ return (

취소 정보 확인

-
-

테마: {reservation.themeName}

-

신청 일시: {formatDisplayDateTime(reservation.applicationDateTime)}

- {reservation.payment &&

결제 금액: {reservation.payment.totalAmount.toLocaleString()}원

} +
+

테마:{reservation.overview.themeName}

+

신청 일시:{formatDisplayDateTime(reservation.applicationDateTime)}

+ {reservation.payment &&

결제 금액:{reservation.payment.totalAmount.toLocaleString()}원

}