# AGENTS.md — Pet Service Management System (server) ## Stack - **Spring Boot 3.5.15** + **MyBatis 3.0.5** + **MySQL** - Java 17, Maven (wrapper at `./mvnw`) ## Quick commands ```bash ./mvnw spring-boot:run # start dev server (port 8080, context-path /api) ./mvnw clean package # build ./mvnw test # run tests ``` ## Structure - Single Maven module; all source under `src/main/java/space/anyi/petServiceManagementSystem/server/` - Config at `src/main/resources/application.yaml` - No tests yet (`src/test/` exists but is empty) - Frontend lives in sibling `../ui/` directory (Vite + React + TypeScript) ## API conventions - All endpoints prefixed with `/api` (set via `server.servlet.context-path` in yaml) - Default port: `8080` ## Coding conventions - **OpenAPI annotations on every controller API** — use `@Operation`, `@Parameter`, `@Schema` from `io.swagger.v3.oas.annotations` - **DTO / VO for API params** — request params use DTO, response data uses VO. Do not expose entities directly in controller - **Business logic in Service layer** — Controller only delegates, Service contains `@Transactional` logic - **Entity property comments** — every field in entity classes must have an inline comment explaining its meaning - **Beginner-friendly style** — simple code, high readability over cleverness - **Business logic comments** — add inline comments explaining the implementation approach and reasoning at key steps ## Notable - `build/` and `out/` are gitignored (build artifacts) - `.mvn/wrapper/maven-wrapper.properties` — Maven wrapper pinned version - No CI, no lint config, no formatter config, no codegen - No tests exist yet — add them under `src/test/java/space/anyi/petServiceManagementSystem/server/`