Task #171
Updated by Dana Basheer about 2 months ago
The Messaging Module allows users to communicate with each other after mutual interest is accepted.
Messaging enables interaction between matched profiles to discuss further details before proceeding with marriage discussions.
**Table**
Structure: user_message_table
* id INT PK Unique message ID
* sender_profile_id INT FK Profile sending message
* receiver_profile_id INT FK Profile receiving message
* message_text TEXT — Message content
* sent_at DATETIME — Message sent time
* is_read BOOLEAN — Read status
* is_active BOOLEAN — Status
**Validations**
sender_profile_id
* Mandatory
* Must exist in registration_table
* Must be active profile
receiver_profile_id
* Mandatory
* Must exist in registration_table
* Must be active profile
Self Messaging Restriction
* User cannot send message to their own profile.
message_text
* Mandatory
* Minimum 1 character
* Maximum 2000 characters
* No HTML or script injection allowed
sent_at
* Auto generated
* Cannot be NULL
is_read
* Default value: false
* Changes to true when receiver opens message
is_active
* Default value: true
If interest is:
* Pending → messaging not allowed
* Rejected → messaging not allowed
Message History
* All messages must remain stored for chat history.