finalproject / data_models /context_member.py
jarondon82's picture
Implementada estructura modular con controladores y modelos de datos siguiendo la versi贸n local
2eb6f71
"""
Context Member Model for EmotionMirror application.
This module defines the ContextMember class that represents
a member (person) in a group analysis context.
"""
from typing import Dict, Any, Optional
from datetime import datetime
class ContextMember:
"""
Represents a member (person) in a group analysis context.
"""
def __init__(
self,
member_id: str,
name: Optional[str] = None,
face_data: Optional[Dict[str, Any]] = None,
emotion_data: Optional[Dict[str, float]] = None,
metadata: Optional[Dict[str, Any]] = None
):
"""
Initialize a context member.
Args:
member_id: Unique identifier for the member
name: Name of the person if known
face_data: Face detection data including coordinates, etc.
emotion_data: Emotion analysis results
metadata: Additional member metadata
"""
self.member_id = member_id
self.name = name or "Unknown"
self.face_data = face_data or {}
self.emotion_data = emotion_data or {}
self.metadata = metadata or {}
self.created_at = datetime.now()
def to_dict(self) -> Dict[str, Any]:
"""
Convert the context member to a dictionary for storage or serialization.
Returns:
Dictionary representation of the context member
"""
return {
"member_id": self.member_id,
"name": self.name,
"face_data": self.face_data,
"emotion_data": self.emotion_data,
"metadata": self.metadata,
"created_at": self.created_at.isoformat()
}
@classmethod
def from_dict(cls, data: Dict[str, Any]) -> 'ContextMember':
"""
Create a context member from a dictionary.
Args:
data: Dictionary with context member data
Returns:
A ContextMember instance
"""
instance = cls(
member_id=data.get("member_id", ""),
name=data.get("name", "Unknown"),
face_data=data.get("face_data", {}),
emotion_data=data.get("emotion_data", {}),
metadata=data.get("metadata", {})
)
if "created_at" in data:
instance.created_at = datetime.fromisoformat(data["created_at"])
return instance