Notification updates

This commit is contained in:
Eric Gullickson
2025-12-21 19:56:52 -06:00
parent 144f1d5bb0
commit 719c80ecd8
80 changed files with 7552 additions and 678 deletions

View File

@@ -19,6 +19,32 @@ Maintain professional documentation standards without emoji usage.
- **Delete** old code when replacing it
- **Meaningful names**: `userID` not `id`
## Naming Conventions
### Case Standards
| Layer | Convention | Example |
|-------|------------|---------|
| Database columns | snake_case | `user_id`, `created_at`, `is_active` |
| Backend TypeScript types | camelCase | `userId`, `createdAt`, `isActive` |
| API responses | camelCase | `{ "userId": "...", "createdAt": "..." }` |
| Frontend TypeScript types | camelCase | `userId`, `createdAt`, `isActive` |
### Repository Pattern for Case Conversion
All repositories MUST implement private `mapRow()` or similar mapper functions to convert database snake_case to TypeScript camelCase:
```typescript
private mapRow(row: any): MyType {
return {
id: row.id,
userId: row.user_id, // snake_case -> camelCase
createdAt: row.created_at,
isActive: row.is_active,
};
}
```
All methods returning data to the API must use these mappers - never return raw database rows.
## Docker-First Implementation Strategy
### 1. Package.json Updates Only