cmake_minimum_required(VERSION 3.14)
project(MallSystem VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# MSVC UTF-8 support
if (MSVC)
    add_compile_options(/utf-8)
endif()

# ============================================================
# Main executable
# ============================================================
set(SOURCES
    src/main.cpp
    src/app.cpp
    src/product.cpp
    src/shopping_cart.cpp
    src/order.cpp
)

set(HEADERS
    include/app.hpp
    include/product.hpp
    include/shopping_cart.hpp
    include/order.hpp
)

add_executable(mall ${SOURCES} ${HEADERS})
target_include_directories(mall PRIVATE include)

# ============================================================
# Test executable (uses plain assert, no external dependency)
# ============================================================
set(TEST_SOURCES
    tests/basic_test.cpp
    src/app.cpp
    src/product.cpp
    src/shopping_cart.cpp
    src/order.cpp
)

add_executable(mall_test ${TEST_SOURCES} ${HEADERS})
target_include_directories(mall_test PRIVATE include)
