feat(time-tracking): add byte-identical time-tracking DTOs from server #51

Merged
longjacksonle merged 1 commit from feat/time-tracking-client-dtos into main 2026-06-04 05:56:37 +02:00

What

Ports the server's time_tracking model types so the SPA can consume the new Service Desk endpoints (work types, time entries, timesheets, timers, rounding rules). Companion to mokosh-server PR #58.

Changes

  • New src/modules/time_tracking/ mirroring the shared-module pattern: mod.rs gates routes/service behind #[cfg(feature = "server")], so the WASM build compiles only models. The tree is byte-identical to mokosh-server's copy to keep the manual copy-paste contract intact.
  • Adds rust_decimal (features = ["serde"], db-postgres omitted on the client) for the money/rate DTO fields.

Note

This is the fifth shared module, which per client-server-integration.md is the trigger to extract a shared types crate. That extraction is a tracked follow-up rather than part of this slice.

Testing

  • just pre-commit green: fmt, clippy (--all-targets -D warnings), cargo check --target wasm32-unknown-unknown, and cargo test --lib (47 tests) all pass in the rust-builder image.

🤖 Generated with Claude Code

## What Ports the server's `time_tracking` model types so the SPA can consume the new Service Desk endpoints (work types, time entries, timesheets, timers, rounding rules). Companion to mokosh-server PR #58. ## Changes - New `src/modules/time_tracking/` mirroring the shared-module pattern: `mod.rs` gates `routes`/`service` behind `#[cfg(feature = "server")]`, so the WASM build compiles only `models`. The tree is byte-identical to mokosh-server's copy to keep the manual copy-paste contract intact. - Adds `rust_decimal` (`features = ["serde"]`, `db-postgres` omitted on the client) for the money/rate DTO fields. ## Note This is the fifth shared module, which per `client-server-integration.md` is the trigger to extract a shared types crate. That extraction is a tracked follow-up rather than part of this slice. ## Testing - `just pre-commit` green: fmt, clippy (`--all-targets -D warnings`), `cargo check --target wasm32-unknown-unknown`, and `cargo test --lib` (47 tests) all pass in the rust-builder image. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(time-tracking): add byte-identical time-tracking DTOs from server
All checks were successful
Check / clippy + fmt + tests (pull_request) Successful in 1m21s
Create release / Create release from merged PR (pull_request) Has been skipped
948e97dcf9
Ports the server's `time_tracking` model types so the SPA can consume the new Service Desk endpoints (work types, time entries, timesheets, timers, rounding rules). The module mirrors the existing shared-module pattern: `mod.rs` gates `routes`/`service` behind `#[cfg(feature = "server")]`, so the WASM build compiles only `models`, and the tree is byte-identical to mokosh-server's copy to keep the manual copy-paste contract intact.

Adds `rust_decimal` (`features = ["serde"]`, `db-postgres` omitted on the client) for the money/rate fields on the time-entry and work-type DTOs. This is the fifth shared module, which per the integration doc is the trigger to extract a shared types crate; that extraction is a tracked follow-up rather than part of this slice.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
longjacksonle deleted branch feat/time-tracking-client-dtos 2026-06-04 05:56:37 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-apps!51
No description provided.