Docs: Vereinfacht API integration and guidelines
- CODE_GUIDELINES: add vereinfacht/ to project structure, required-fields note, link to vereinfacht-api - docs/vereinfacht-api.md: filter API, minimal create payload, no extra required fields - feature-roadmap: member-contact sync implemented, link to doc
This commit is contained in:
parent
0ac39c646f
commit
fbc3fc2a4d
3 changed files with 56 additions and 3 deletions
|
|
@ -62,6 +62,7 @@ We are building a membership management system (Mila) using the following techno
|
|||
|
||||
**Related documents:**
|
||||
- **UI / UX:** [`DESIGN_DUIDELINES.md`](../DESIGN_DUIDELINES.md) defines visual and interaction consistency: use of CoreComponents (no raw DaisyUI in views), page skeleton (`<.header>`, `mt-6 space-y-6`), **Back button left in header for edit/new forms** (§2.2), typography, buttons, forms, tables, flash/toast, and microcopy (e.g. German "du" and glossary). Follow "components first" and semantic variants instead of hard-coded colors.
|
||||
- **Vereinfacht API:** [`docs/vereinfacht-api.md`](docs/vereinfacht-api.md) describes the finance-contact sync (find by email filter, minimal create payload, no extra required member fields).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -115,8 +116,13 @@ lib/
|
|||
│ ├── membership_fees/ # Membership fee business logic
|
||||
│ │ ├── cycle_generator.ex # Cycle generation algorithm
|
||||
│ │ └── calendar_cycles.ex # Calendar cycle calculations
|
||||
│ ├── vereinfacht/ # Vereinfacht accounting API integration
|
||||
│ │ ├── client.ex # HTTP client (finance-contacts: create, update, find by email)
|
||||
│ │ ├── vereinfacht.ex # Business logic (sync_member, sync_members_without_contact)
|
||||
│ │ ├── sync_flash.ex # Flash message helpers for sync results
|
||||
│ │ └── changes/ # Ash changes (SyncContact, sync linked member)
|
||||
│ ├── helpers.ex # Shared helper functions (ash_actor_opts)
|
||||
│ ├── constants.ex # Application constants (member_fields, custom_field_prefix)
|
||||
│ ├── constants.ex # Application constants (member_fields, custom_field_prefix, vereinfacht_required_member_fields)
|
||||
│ ├── application.ex # OTP application
|
||||
│ ├── mailer.ex # Email mailer
|
||||
│ ├── release.ex # Release tasks
|
||||
|
|
@ -2874,7 +2880,7 @@ Building accessible applications ensures that all users, including those with di
|
|||
|
||||
**Required Fields:**
|
||||
|
||||
Which member fields are required (asterisk, tooltip, validation) is configured in **Settings** (Memberdata section: edit a member field and set "Required"). The member create/edit form and Member resource validation both read `settings.member_field_required`. Email is always required; other fields default to optional.
|
||||
Which member fields are required (asterisk, tooltip, validation) is configured in **Settings** (Memberdata section: edit a member field and set "Required"). The member create/edit form and Member resource validation both read `settings.member_field_required`. Email is always required; other fields default to optional. The Vereinfacht integration does not add extra required member fields (the external API accepts a minimal payload when creating contacts and supports filter-by-email for lookup).
|
||||
|
||||
```heex
|
||||
<!-- Mark required fields (value from settings or always true for email) -->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue