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

base44
Edit with Base44