# Repository Guidelines

## Project Structure & Module Organization
This repository is a small Java console application for parking management.

- `src/`: Java source files (`Main.java`, `GestorParqueo.java`, `Vehiculo.java`).
- `bin/`: Compiled `.class` output (generated artifacts).
- `lib/`: External dependencies (currently unused, keep optional jars here).
- `.vscode/`: Local editor settings for VS Code Java workflows.

Keep business logic in `GestorParqueo` and `Vehiculo`; keep CLI/menu flow in `Main`.

## Build, Test, and Development Commands
Run commands from the repository root:

- `javac -d bin src/*.java`: Compile all Java sources into `bin/`.
- `java -cp bin Main`: Run the console application.
- `rm -f bin/*.class`: Clean compiled artifacts for a fresh build.

There is no Gradle/Maven wrapper configured yet, so use `javac`/`java` directly.

## Coding Style & Naming Conventions
- Use 4-space indentation and UTF-8 encoding.
- Class names: `PascalCase` (for example, `GestorParqueo`).
- Methods/variables: `camelCase` (for example, `registrarVehiculo`).
- Constants: `UPPER_SNAKE_CASE` (for example, `MAX_VEHICULOS`).
- Keep methods focused; validate input close to where it is read.

Prefer clear Spanish domain names consistent with current code (`placa`, `horaEntrada`, etc.).

## Testing Guidelines
Automated tests are not present yet. Add tests before extending core behavior.

- Suggested location: `test/` (mirror `src/` class names).
- Suggested framework: JUnit 5.
- Naming pattern: `ClassNameTest` and descriptive methods such as `registrarVehiculo_rechazaPlacaDuplicada`.
- Minimum expectation for changes: cover happy path plus at least one invalid-input case.

Until tests are added, manually validate by compiling and running menu flows from `Main`.

## Commit & Pull Request Guidelines
Git history is not available in this workspace, so use this convention:

- Commit format: `type(scope): short imperative summary`  
  Example: `fix(main): validate integer menu option`.
- Keep commits small and single-purpose.
- PRs should include: objective, changed files, manual test steps, and console output/screenshots for UI/menu behavior.
- Link related issue/task IDs when available.
