Adam & Eve Real Estate - Project Documentation
Complete technical overview of the project
Database Entities
1. Property
{
"name": "Property",
"type": "object",
"properties": {
"title": { "type": "string" },
"description": { "type": "string" },
"meta_description": { "type": "string" },
"property_type": {
"type": "string",
"enum": ["buy", "let", "short_term", "commercial"]
},
"address": { "type": "string" },
"postcode": { "type": "string" },
"borough": { "type": "string" },
"latitude": { "type": "number" },
"longitude": { "type": "number" },
"price": { "type": "number" },
"price_period": {
"type": "string",
"enum": ["sale", "monthly", "weekly", "nightly"]
},
"bedrooms": { "type": "number" },
"bathrooms": { "type": "number" },
"size_sqft": { "type": "number" },
"epc_rating": { "type": "string", "enum": ["A", "B", "C", "D", "E", "F", "G", "unknown"] },
"council_tax_band": { "type": "string" },
"tenure": { "type": "string", "enum": ["freehold", "leasehold", "share_of_freehold", "na"] },
"year_built": { "type": "number" },
"features": { "type": "array", "items": { "type": "string" } },
"primary_image_url": { "type": "string" },
"gallery": { "type": "array" },
"floorplan_urls": { "type": "array" },
"video_url": { "type": "string" },
"virtual_tour_url": { "type": "string" },
"available_from": { "type": "string", "format": "date" },
"lease_term_years": { "type": "number" },
"deposit_required": { "type": "number" },
"status": {
"type": "string",
"enum": ["available", "under_offer", "let", "sold"]
},
"is_featured": { "type": "boolean", "default": false },
"property_ref": { "type": "string" }
},
"required": ["title", "property_type", "address", "price", "price_period"]
}2. LeaseApplication
{
"name": "LeaseApplication",
"properties": {
"property_id": { "type": "string" },
"applicant_name": { "type": "string" },
"applicant_email": { "type": "string" },
"applicant_phone": { "type": "string" },
"employment_status": { "type": "string", "enum": ["employed", "self_employed", "unemployed", "student", "retired"] },
"annual_income": { "type": "number" },
"lease_duration_years": { "type": "number" },
"move_in_date": { "type": "string", "format": "date" },
"references": { "type": "array" },
"id_document_url": { "type": "string" },
"selfie_url": { "type": "string" },
"status": {
"type": "string",
"enum": ["pending", "under_review", "approved", "rejected", "requires_solicitor"]
},
"notes": { "type": "string" }
},
"required": ["property_id", "applicant_name", "applicant_email", "lease_duration_years"]
}3. Solicitor
{
"name": "Solicitor",
"properties": {
"firm_name": { "type": "string" },
"location": { "type": "string" },
"specializations": { "type": "string" },
"offer_text": { "type": "string" },
"phone": { "type": "string" },
"email": { "type": "string" },
"rating": { "type": "number", "minimum": 0, "maximum": 5 }
},
"required": ["firm_name", "location", "phone", "email"]
}4. TeamMember
{
"name": "TeamMember",
"properties": {
"name": { "type": "string" },
"position": { "type": "string" },
"image": { "type": "string" },
"bio": { "type": "string" }
},
"required": ["name", "position"]
}5. Testimonial
{
"name": "Testimonial",
"properties": {
"name": { "type": "string" },
"location": { "type": "string" },
"text": { "type": "string" },
"rating": { "type": "number", "minimum": 1, "maximum": 5 },
"image": { "type": "string" }
},
"required": ["name", "text", "rating"]
}6. Service
{
"name": "Service",
"properties": {
"key": { "type": "string" },
"icon": { "type": "string" },
"title": { "type": "string" },
"description": { "type": "string" },
"features": { "type": "array" },
"process": { "type": "array" }
},
"required": ["key", "icon", "title", "description"]
}7. FAQ
{
"name": "FAQ",
"properties": {
"question": { "type": "string" },
"answer": { "type": "string" }
},
"required": ["question", "answer"]
}8. PaymentRecord
{
"name": "PaymentRecord",
"properties": {
"tenant_email": { "type": "string" },
"property_id": { "type": "string" },
"payment_type": { "type": "string", "enum": ["deposit", "rent", "booking_fee", "other"] },
"amount": { "type": "number" },
"payment_method": { "type": "string", "enum": ["stripe", "bank_transfer", "cash", "other"] },
"payment_date": { "type": "string", "format": "date" },
"status": { "type": "string", "enum": ["pending", "completed", "failed", "refunded"] },
"stripe_payment_id": { "type": "string" },
"notes": { "type": "string" }
},
"required": ["tenant_email", "payment_type", "amount", "payment_date"]
}9. EmailNotification
{
"name": "EmailNotification",
"properties": {
"recipient_email": { "type": "string" },
"notification_type": {
"type": "string",
"enum": ["application_submitted", "application_approved", "application_rejected", "rent_reminder", "payment_received"]
},
"subject": { "type": "string" },
"message": { "type": "string" },
"sent_date": { "type": "string", "format": "date-time" },
"status": { "type": "string", "enum": ["sent", "failed", "pending"] }
},
"required": ["recipient_email", "notification_type", "subject", "message"]
}10. Post (Blog)
{
"name": "Post",
"properties": {
"title": { "type": "string" },
"slug": { "type": "string" },
"content": { "type": "string" },
"author_name": { "type": "string" },
"featured_image": { "type": "string" },
"tags": { "type": "array" },
"status": { "type": "string", "enum": ["draft", "published"] }
},
"required": ["title", "slug", "content"]
}11. AIImageRequest
{
"name": "AIImageRequest",
"properties": {
"property_id": { "type": "string" },
"room_type": { "type": "string", "enum": ["bedroom", "bathroom", "living", "kitchen", "study", "amenity", "other"] },
"prompt": { "type": "string" },
"reference_urls": { "type": "array" },
"status": { "type": "string", "enum": ["queued", "generating", "failed", "completed"] },
"result_urls": { "type": "array" },
"notes": { "type": "string" },
"approved": { "type": "boolean", "default": false }
},
"required": ["property_id", "room_type", "prompt"]
}12. PropertyValuation
{
"name": "PropertyValuation",
"properties": {
"property_id": { "type": "string" },
"estimated_value": { "type": "number" },
"confidence_score": { "type": "number", "minimum": 0, "maximum": 100 },
"last_updated": { "type": "string", "format": "date" },
"factors": { "type": "array" },
"comparable_properties": { "type": "array" },
"market_trend": { "type": "string", "enum": ["rising", "stable", "falling"] }
},
"required": ["property_id", "estimated_value"]
}13. AreaInsight
{
"name": "AreaInsight",
"properties": {
"postcode": { "type": "string" },
"area_name": { "type": "string" },
"average_price": { "type": "number" },
"price_change_1_year": { "type": "number" },
"rental_yield": { "type": "number" },
"crime_rate": { "type": "string", "enum": ["very_low", "low", "medium", "high", "very_high"] },
"transport_rating": { "type": "number", "minimum": 1, "maximum": 10 },
"school_rating": { "type": "number", "minimum": 1, "maximum": 10 },
"amenities_score": { "type": "number", "minimum": 1, "maximum": 10 },
"population_density": { "type": "number" },
"local_amenities": { "type": "array" }
},
"required": ["postcode", "area_name"]
}14. PropertyAlert
{
"name": "PropertyAlert",
"properties": {
"user_email": { "type": "string" },
"alert_name": { "type": "string" },
"criteria": { "type": "object" },
"frequency": { "type": "string", "enum": ["instant", "daily", "weekly"] },
"active": { "type": "boolean", "default": true },
"last_sent": { "type": "string", "format": "date-time" }
},
"required": ["user_email", "alert_name", "criteria"]
}15. PropertyHistory
{
"name": "PropertyHistory",
"properties": {
"property_id": { "type": "string" },
"event_type": { "type": "string", "enum": ["listed", "price_change", "sold", "let", "withdrawn"] },
"event_date": { "type": "string", "format": "date" },
"price": { "type": "number" },
"details": { "type": "string" },
"source": { "type": "string", "enum": ["internal", "land_registry", "rightmove", "zoopla"] }
},
"required": ["property_id", "event_type", "event_date"]
}Quick Reference
Contact Information
Email: adamandeverealestateltd@gmail.com
Phone: +44 20 7123 4567
Address: 25 Hertsmere Road, Canary Wharf, London E14 4AE
User Roles
Admin: Full access to admin dashboard, property management, payments
User: Tenant dashboard, lease applications, viewing bookings