Data Models
Comprehensive guide to UltraReach.ai's data models, their relationships, and how to work with them effectively in your applications.
Lead Model
{ "id": "lead_123", "created_at": "2025-02-07T02:55:00Z", "updated_at": "2025-02-07T02:55:00Z", "status": "active", "score": 85, "contact": { "first_name": "John", "last_name": "Doe", "email": "john@example.com", "phone": "+1234567890" }, "preferences": { "property_types": ["apartment", "house"], "price_range": { "min": 300000, "max": 500000 }, "locations": ["downtown", "suburbs"], "bedrooms": { "min": 2, "max": 3 }, "bathrooms": { "min": 1, "max": 2 } }, "engagement": { "last_contact": "2025-02-06T00:00:00Z", "total_interactions": 15, "preferred_contact_time": "evening" } }
Property Model
{ "id": "prop_456", "created_at": "2025-02-07T02:55:00Z", "updated_at": "2025-02-07T02:55:00Z", "status": "active", "type": "apartment", "details": { "price": 450000, "bedrooms": 2, "bathrooms": 2, "square_feet": 1200, "year_built": 2020 }, "location": { "address": "123 Main St", "city": "Example City", "state": "EX", "zip": "12345", "coordinates": { "latitude": 37.7749, "longitude": -122.4194 } }, "features": [ "parking", "pool", "gym" ], "media": { "photos": ["url1", "url2"], "virtual_tour": "tour_url", "floor_plan": "plan_url" } }
Relationship Models
Property Match
{ "id": "match_789", "lead_id": "lead_123", "property_id": "prop_456", "created_at": "2025-02-07T02:55:00Z", "score": 92, "match_factors": [ "price_range", "location", "bedrooms" ], "status": "presented", "lead_feedback": "interested" }
Interaction
{ "id": "int_101", "lead_id": "lead_123", "type": "message", "created_at": "2025-02-07T02:55:00Z", "channel": "email", "content": "Inquiry about property", "sentiment": "positive", "ai_analysis": { "intent": "information_request", "urgency": "medium" } }
Market Analysis
{ "id": "analysis_202", "property_id": "prop_456", "created_at": "2025-02-07T02:55:00Z", "market_data": { "median_price": 460000, "price_trend": "+5%", "days_on_market": 30, "comparable_properties": [ "prop_457", "prop_458" ] }, "predictions": { "estimated_value": 455000, "appreciation_rate": "3.5%", "sale_probability": 0.85 } }
Agent Assignment
{ "id": "assignment_303", "lead_id": "lead_123", "agent_id": "agent_789", "created_at": "2025-02-07T02:55:00Z", "status": "active", "match_score": 88, "match_factors": [ "expertise", "location", "language" ], "performance": { "response_time": "2h", "satisfaction_score": 4.8 } }
Model Relationships
- •Lead → Properties (many-to-many)
- •Lead → Interactions (one-to-many)
- •Property → Analysis (one-to-many)
- •Lead → Agent (many-to-one)
Data Validation
- •Required fields validation
- •Data type checking
- •Format validation
- •Relationship integrity
Common Operations
GET/api/v1/leads/:id
POST/api/v1/properties
PUT/api/v1/matches/:id
Working with Models
Create
Create new instances with proper validation
Query
Fetch and filter data efficiently
Update
Modify existing records safely
Delete
Handle deletions with care