diff --git a/app/src/main/java/app/closer/domain/DailyModeResolver.kt b/app/src/main/java/app/closer/domain/DailyModeResolver.kt index b9f93356..bc56457b 100644 --- a/app/src/main/java/app/closer/domain/DailyModeResolver.kt +++ b/app/src/main/java/app/closer/domain/DailyModeResolver.kt @@ -18,54 +18,68 @@ object DailyModeResolver { val modeTag: String ) + // NOTE: each mode's `id` and `modeTag` are FROZEN — they are the contract with the question bank. + // `modeTag` is the tag the daily-question rows are filtered by (e.g. "mode_soft_monday" selects + // Monday's questions), and `id` must equal `modeTag` minus the "mode_" prefix because + // AnswerRevealScreen resolves the mode from a question's tag via getMode(tag.removePrefix("mode_")). + // Only the display strings (title/subtitle/actionCopy) are theme-aligned to the weekday guide + // (Daily Single Choice Weekday System); renaming an id/modeTag would silently break daily + // selection and the reveal header. Weekday → mode mapping is defined in DOW_DEFAULTS below. private val MODES = mapOf( + // Monday — Mood Check Monday: pick the vibe the week needs. "soft_monday" to DailyMode( id = "soft_monday", - title = "Soft Monday", - subtitle = "Tiny, easy, still us.", - actionCopy = "Tiny mission: make tonight easier on purpose.", + title = "Mood Check Monday", + subtitle = "Pick the vibe tonight needs.", + actionCopy = "Mood check: pick what kind of night we need.", modeTag = "mode_soft_monday" ), + // Tuesday — Tiny Win Tuesday: one small win to enjoy together. "snack_mission" to DailyMode( id = "snack_mission", - title = "Snack Mission", - subtitle = "The snack is part of the plot.", - actionCopy = "Snack mission: find one treat worth sharing.", + title = "Tiny Win Tuesday", + subtitle = "One small win, worth celebrating.", + actionCopy = "Tiny win: pick one small thing to celebrate.", modeTag = "mode_snack_mission" ), + // Wednesday — Real One Wednesday: the most honest little answer. "no_phone_moment" to DailyMode( id = "no_phone_moment", - title = "No-Phone Moment", - subtitle = "Just a tiny bit of us.", - actionCopy = "No-phone moment: 10 minutes, just us.", + title = "Real One Wednesday", + subtitle = "One honest little truth.", + actionCopy = "Real one: give the honest answer tonight.", modeTag = "mode_no_phone_moment" ), + // Thursday — Laugh It Off Thursday: something silly, low pressure. "laugh_reset" to DailyMode( id = "laugh_reset", - title = "Laugh Reset", + title = "Laugh It Off Thursday", subtitle = "Pressure off. Weird on.", - actionCopy = "Laugh reset: tell today's nonsense dramatically.", + actionCopy = "Laugh it off: tell today's nonsense dramatically.", modeTag = "mode_laugh_reset" ), + // Friday — Flirty Friday: playful, sweet, a little spark. "flirty_friday" to DailyMode( id = "flirty_friday", title = "Flirty Friday", subtitle = "A little spark, no pressure.", - actionCopy = "Tiny mission: send one flirty text.", + actionCopy = "Flirty Friday: make one small, sweet move.", modeTag = "mode_flirty_friday" ), + // Saturday — Side Quest Saturday: a tiny adventure or date idea. "weekend_side_quest" to DailyMode( id = "weekend_side_quest", - title = "Weekend Side Quest", - subtitle = "Pick today's tiny mission.", + title = "Side Quest Saturday", + subtitle = "Today's tiny adventure.", actionCopy = "Side quest: do one tiny thing outside the usual.", modeTag = "mode_weekend_side_quest" ), + // Sunday — Slow Burn Sunday: warm, cozy closeness. "tiny_date_night" to DailyMode( id = "tiny_date_night", - title = "Tiny Date Night", - subtitle = "Small plan. Big maybe.", - actionCopy = "Tiny mission: make one ordinary thing feel like a date.", + title = "Slow Burn Sunday", + subtitle = "Cozy, close, no rush.", + actionCopy = "Slow burn: pick the closeness that feels best.", modeTag = "mode_tiny_date_night" ), "couple_lore_day" to DailyMode(