field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

commit 1665548581a8ee9582ff943ffa625bcc13d59960
parent c85bc0545b801fd9c425640c29d7d2d483cf51b6
Author: triesap <tyson@radroots.org>
Date:   Sat,  8 Aug 2026 00:50:27 +0000

feat(mobile): expose typed Today rendering fields

- preserve Event and FoodAvailability locations in projected cards
- expose focused price, currency, unit, and quantity values through UniFFI
- keep older stored projections compatible through optional serde fields
- cover exact rendering-field projection with focused protocol tests

Diffstat:
Mcore/crates/tera_ffi/src/dto.rs | 10++++++++++
1 file changed, 10 insertions(+), 0 deletions(-)

diff --git a/core/crates/tera_ffi/src/dto.rs b/core/crates/tera_ffi/src/dto.rs @@ -403,6 +403,11 @@ pub struct FfiTodayCardRecord { pub effective_at_unix_s: u64, pub event_start_unix_s: Option<u64>, pub event_end_unix_s: Option<u64>, + pub location: Option<String>, + pub price_amount: Option<String>, + pub price_currency: Option<String>, + pub price_unit: Option<String>, + pub quantity: Option<String>, pub context_rank: u8, pub inclusion_reason: String, pub media: Vec<FfiMediaReferenceRecord>, @@ -432,6 +437,11 @@ impl From<TodayCard> for FfiTodayCardRecord { effective_at_unix_s: card.effective_at, event_start_unix_s: card.event_start, event_end_unix_s: card.event_end, + location: card.location, + price_amount: card.price_amount, + price_currency: card.price_currency, + price_unit: card.price_unit, + quantity: card.quantity, context_rank: card.context_rank.value(), inclusion_reason: card.inclusion_reason, media: card.media.into_iter().map(Into::into).collect(),