# Sprint G009 — Couple Panel Integration & Content Binding

## Context

Project: INVEETAIRE Digital Invitation Platform

Current Architecture:

Couple Panel (CMS)
        ↓
Configuration (Database + JSON)
        ↓
Public Invitation Renderer

Previous completed sprints:

- Sprint 0
- DX001
- DX002A
- DX002B
- DX003
- RC001

Core Engine:

✅ G004 Media Engine
✅ G005 Image Processing Engine
✅ G006 Guest & Invitation Engine
✅ G007 Music Engine
✅ G008 QR Attendance Engine

The platform is already functional.

This sprint DOES NOT introduce major new features.

The objective is to ensure every configurable item inside Couple Panel is correctly connected and rendered in Public Invitation.

---

# Objective

Perform a complete audit of the current Couple Panel.

For every configurable field:

- verify data is saved correctly
- verify data is loaded correctly
- verify Public Invitation consumes the same data
- verify there are no duplicated implementations
- verify no hardcoded values exist inside themes

This sprint focuses on integration, consistency, and completeness.

---

# Core Principle

Couple Panel is the single source of truth.

Public Invitation must never own its own content.

It only renders data provided by Couple Panel.

No duplicated configuration.

No duplicated business logic.

---

# Scope

## 1. General Information

Verify:

- Couple Name
- Bride
- Groom
- Parents
- Wedding Date
- Time
- Venue
- Maps
- Countdown
- Dresscode
- Opening Message
- Closing Message

Everything must render correctly.

---

## 2. Story

Verify:

- Story enabled
- Timeline
- Story images
- Ordering

Ensure renderer consumes configuration correctly.

---

## 3. Gallery

Verify:

- Uploaded gallery
- Ordering
- Image rendering
- Empty state

---

## 4. Event Schedule

Verify:

Holy Matrimony

Tea Pai

Reception

Guest must ONLY see events assigned to them.

Example:

Guest A

✓ Holy Matrimony
✓ Reception

Tea Pai must not appear.

---

## 5. Guest Module

Verify:

- Honorific
- Guest Name
- Guest Token
- QR
- Preview
- Copy Link

Everything should remain synchronized.

---

## 6. Music

Verify:

- Enable
- Title
- Artist
- Cover
- Audio
- Autoplay
- Loop
- Volume
- Minimized Player

Public renderer must consume every setting.

---

## 7. Gift

Verify support for:

Enable Gift

Message

Maximum 3 Bank Accounts

Each account:

- Bank
- Account Number
- Account Holder

QRIS Upload

Renderer should display:

- Message
- Available accounts
- Copy Account Number
- QRIS Image

No payment gateway.

No Midtrans.

No Xendit.

---

## 8. Wishes / Guest Book

Verify existing implementation.

Guest should be able to submit wishes.

Couple controls:

- Enable
- Public Display
- Moderation

Public Invitation follows those settings.

---

## 9. QR Validation

Verify:

QR download

Validation page

Guest identity

Published invitation restriction

---

## 10. Theme Consistency

Verify every section uses the same configuration source.

Themes must NEVER define:

Own title

Own data

Own content

Themes only render CMS data.

---

# Required Audit

Produce a checklist.

For every module report:

✅ Connected

⚠ Missing Binding

⚠ Duplicate Logic

⚠ Hardcoded Value

⚠ Renderer Missing

Example:

Gallery
Status:
Connected

--------------------------------

Music
Status:
Volume setting exists but renderer ignores it.

--------------------------------

Gift
Status:
QRIS upload exists but renderer missing.

--------------------------------

Story
Status:
Connected.

---

# Refactoring Rules

Do NOT redesign architecture.

Do NOT create new database tables unless absolutely required.

Reuse existing services.

Reuse existing models.

Reuse existing JSON structures.

Minimize breaking changes.

Maintain backward compatibility.

---

# Deliverables

1. Complete Couple Panel audit

2. Fix every missing binding

3. Remove duplicate rendering logic

4. Ensure Public Invitation fully reflects Couple Panel

5. Produce a final Integration Report containing:

- Connected Modules
- Fixed Issues
- Remaining Improvements
- Technical Notes
- Architecture Validation

---

Expected Result

After Sprint G009:

Every configurable item inside Couple Panel has a working connection to Public Invitation.

Couple Panel becomes the single source of truth for the entire INVEETAIRE platform.

No duplicated business logic.

No orphan configuration.

All themes consume the same standardized data contract.