from pydantic import BaseModel from typing import Optional, List from enum import Enum class MessageType(str, Enum): INITIATE = "initiate" PROPOSAL = "proposal" ACCEPT = "accept" COUNTER = "counter" ESCALATE = "escalate" class AgentMessage(BaseModel): message_id: str negotiation_id: str message_type: MessageType sender_id: int receiver_id: int round_number: int payload: dict reasoning: str = "" satisfaction_score: float = 0.0 concessions_made: List[str] = [] concessions_requested: List[str] = [] timestamp: str = ""