diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-21 12:03:39 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-21 12:03:39 +0800 |
| commit | f4ab0b08d7648914f6fd049fa1887c0422f69318 (patch) | |
| tree | c2dc484ed97bd0dc573986318cce921340fbd783 /src/FundLab.Domain/Dividend.fs | |
| parent | 205e2a592bf781f08fe23f3577cdfe74ff9a076a (diff) | |
| download | fund-lab-f4ab0b08d7648914f6fd049fa1887c0422f69318.tar.gz | |
Add SIP plan first slice (3d-5)
Introduce scheduled-investment plans as a schedule-only slice with no
cash, position or NAV side effects. Domain gains SipPolicy: amount
validation (positive, two-decimal, overflow-checked), frequency
parsing/round-trip (weekly/biweekly/monthly), nextTradeDate generating
the next due trade date off the plan anchor with month-end clamping
and weekend roll-forward, plus the isDue/executionNetAmount contract
the future executor will implement (execution itself stays
unimplemented and is marked as such; nothing debits cash in this
slice).
Persistence stores plans in sip_plans with anchor/next trade dates and
sip_plan_idempotencies under the shared replay/conflict contract; the
API exposes POST/GET /funds/{id}/sip/plans behind the bearer token.
The frontend adds a 07/SIP panel (code, amount, frequency select,
plan list with next debit date) and Web tests cover decoding,
validation, in-flight guards and stale completions. Choice note:
first debit is scheduled strictly after the anchor date (creating a
plan today never debits today).
Diffstat (limited to 'src/FundLab.Domain/Dividend.fs')
0 files changed, 0 insertions, 0 deletions
