ActivitySummary
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# CLAUDE.md – peakUp Project Guidelines
|
||||
|
||||
**Last updated:** 2026-04-06 | Single source of truth. Strict compliance required.
|
||||
**Last updated:** 2026-05-03 | Single source of truth. Strict compliance required.
|
||||
|
||||
## 1. Core Rules
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
- **Backend**: Quarkus (Java 21), Hibernate, PostgreSQL/TimescaleDB
|
||||
- **Frontend**: Vite + React 18 + TS + Tailwind + shadcn/ui
|
||||
- **Model**: Shared domain models
|
||||
- **Tools**: `peakup-maven` – Maven plugin with two mojos: `PackageInfoGeneratorMojo` (generates `package-info.java` with `@NonNull` per package) and `TypeScriptClientGeneratorMojo` (generates TS client from REST endpoints)
|
||||
- **Tools**: `peakup-maven` – Maven plugin with two mojos: `PackageInfoGeneratorMojo` (generates `package-info.java`
|
||||
with `@NonNull` per package) and `TypeScriptClientGeneratorMojo` (generates TS client from REST endpoints)
|
||||
|
||||
**Backend Architecture**:
|
||||
|
||||
@@ -37,6 +38,7 @@
|
||||
- Strict NullAway + mandatory `final` where possible
|
||||
- Lombok: `@Data`, `@NoArgsConstructor`, `@AllArgsConstructor`, `@Slf4j`
|
||||
- Checkstyle: 4 spaces, 120 char, K&R braces, no star imports
|
||||
- **Type safety is mandatory**: use native types throughout — `Instant`/`LocalDate` for dates, `Long`/`Integer` for IDs and counts, enums for fixed value sets. Never pass dates, IDs, or enums as `String` across layer boundaries. REST DTOs are the only exception — parse to native types immediately at the boundary.
|
||||
- Use `AbstractEntity` and `AbstractTimestampedEntity`
|
||||
- TimescaleDB hypertables via `AbstractTimescaleEntity`
|
||||
|
||||
|
||||
@@ -21,4 +21,4 @@ public abstract class AbstractTimestampedReadonlyService<E extends AbstractTimes
|
||||
}
|
||||
|
||||
protected abstract D getDAO();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user