Futr Connect - Database Models

This document provides a comprehensive overview of all database models used in the Futr Connect platform. Models are organized by their primary domain and include all fields, relationships, and constraints.

User Management Models

User

  • id (UUID, primary key)
  • email (varchar, unique, required)
  • full_name (varchar, nullable)
  • avatar (ImageField, nullable)
  • password (varchar, required)
  • title (varchar, nullable)
  • location (varchar, nullable)
  • organization_name (varchar, nullable)
  • about (text, nullable)
  • is_soft_delete (boolean, default: false)
  • is_terms_agreed (boolean, default: false)
  • professional_email (varchar, unique, nullable)
  • is_professional_email_primary (boolean, default: false)

CompanyFollow

  • id (UUID, primary key)
  • follower (ForeignKey to User)
  • company (ForeignKey to Company)

FavoriteNewsFeed

  • id (UUID, primary key)
  • news_feed (ForeignKey to NewsFeed)
  • user (ForeignKey to User)

PodcastLike

  • id (UUID, primary key)
  • podcast (ForeignKey to Podcast)
  • user (ForeignKey to User)

Notification

  • id (UUID, primary key)
  • title (varchar, nullable)
  • image (ImageField, nullable)
  • message (text, nullable)
  • target_user (ForeignKey to User)
  • actions (jsonb, nullable)
  • is_read (boolean, default: false)
  • content_type (ForeignKey to ContentType)
  • object_model_id (UUID)
  • notification_type (varchar, choices: NOTIFICATION, INFORMATION, ACTIVITY, default: NOTIFICATION)

Company Models

Company

  • id (UUID, primary key)
  • category (ManyToManyField to CompanyCategory, nullable)
  • name (varchar, required)
  • email (varchar, required)
  • company_founded (date, nullable)
  • phone_number (PhoneNumberField, nullable)
  • logo (ImageField, nullable)
  • meeting_url (URLField, nullable)
  • short_video (URLField, nullable)
  • first_call (FileField, nullable)
  • demo_video (FileField, nullable)
  • first_call_url (URLField, nullable)
  • demo_video_url (URLField, nullable)
  • overview (text, nullable)
  • about (text, required)
  • best_suited_for (jsonb, default: [], nullable)
  • where_to_use (text, nullable)
  • standout_function (text, nullable)
  • status (varchar, choices: draft, published, unpublished, default: draft)
  • publish_date (datetime, nullable)
  • user (ForeignKey to User)
  • is_claimed (boolean, default: false)
  • claimed_by (ForeignKey to User, nullable)
  • is_featured_by_admin (boolean, default: false)
  • total_followers_count (PositiveIntegerField, default: 0)
  • total_views (PositiveIntegerField, default: 0)
  • trial_count (PositiveIntegerField, default: 0)
  • booked_count (PositiveIntegerField, default: 0)
  • subscription_status (varchar, choices: subscription_active, free, cancellation_scheduled, need_subscription, subscription_cancelled, default: free)
  • chargebee_customer_id (varchar, nullable)
  • unmapped_data (jsonb, nullable)

CompanyAddress

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • address_1 (varchar, required)
  • address_2 (varchar, nullable)
  • postal_code (varchar, required)
  • state (varchar, required)
  • address_type (varchar, choices: headquarters, others)
  • id (UUID, primary key)
  • company (OneToOneField to Company)
  • career (URLField, nullable)
  • event_page (URLField, nullable)
  • customer_portal (URLField, nullable)
  • facebook (URLField, nullable)
  • instagram (URLField, nullable)
  • youtube (URLField, nullable)
  • twitter (URLField, nullable)
  • linkedin (URLField, nullable)
  • website (URLField, nullable)

CompanyClaimRequest

  • id (UUID, primary key)
  • user (ForeignKey to User)
  • company (ForeignKey to Company)
  • status (varchar, choices: pending, approved, rejected, default: pending)
  • name (varchar, required)
  • work_email_address (EmailField, required)
  • website (URLField, required)
  • linkedin_profile (URLField, nullable)

CompanyClaimRequestMedia

  • id (UUID, primary key)
  • company_claim_request (ForeignKey to CompanyClaimRequest)
  • media (FileField, required)

CompanyMember

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • user (ForeignKey to User)
  • role (varchar, choices: manager, viewer, default: viewer)
  • invited_by (ForeignKey to User, nullable)

CompanyPrivacyPolicy

  • id (UUID, primary key)
  • company (OneToOneField to Company)
  • file (FileField, nullable)
  • privacy_url (URLField, nullable)

ClosureReason

  • id (UUID, primary key)
  • title (varchar, required)
  • is_active (boolean, default: true)

CompanyClosure

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • reason (ForeignKey to ClosureReason)
  • description (text, nullable)

CompanyFreeTrial

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • user (ForeignKey to User)

BookedMeeting

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • user (ForeignKey to User)
  • booked_url (URLField, nullable)

CompanyView

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • user_count (PositiveIntegerField, default: 0)

CompanyMemberInvitationRequest

  • id (UUID, primary key)
  • email (EmailField, required)
  • company (ForeignKey to Company)
  • invited_by (ForeignKey to User)
  • is_accepted (boolean, default: false)

Company Insights Models

DesignationType

  • id (UUID, primary key)
  • title (varchar, required)
  • unmapped_data (jsonb, nullable)

People

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • designation_type (ForeignKey to DesignationType)
  • avatar (ImageField, nullable)
  • name (varchar, required)
  • title (varchar, nullable)
  • url (URLField, nullable)

Finance

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • ipo_status (varchar, required)
  • latest_funding_round (varchar, required)
  • yahoo_finance_url (URLField, nullable)
  • latest_valuation (varchar, nullable)
  • annual_revenue (varchar, required)
  • total_funding (varchar, nullable)

Metric

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • total_employees (varchar, required)
  • total_customers (varchar, required)
  • client_retention (IntegerField, nullable)

Content

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • link (URLField, required)
  • title (varchar, required)
  • video_type (varchar, required)
  • marked_video_as (varchar, choices: demo_video, featured_video, video_call, nullable)
  • total_count (PositiveIntegerField, default: 0)

News

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • source_url (URLField, nullable)
  • total_count (PositiveIntegerField, default: 0)

NewsInteractionCount

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • user_count (PositiveIntegerField, default: 0)

ContentInteractionCount

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • user_count (PositiveIntegerField, default: 0)

Content Models

NewsFeed

  • id (UUID, primary key)
  • headline (varchar, required)
  • url (URLField, unique, required)
  • published_date (datetime, nullable)
  • description (text, nullable)
  • image_url (URLField, nullable)
  • thumbnail_image (ImageField, nullable)
  • minute_read (PositiveIntegerField, default: 0)
  • views_count (PositiveIntegerField, default: 0)
  • is_active (boolean, default: false)

NewsFeedView

  • id (UUID, primary key)
  • news_feed (ForeignKey to NewsFeed)
  • user (ForeignKey to User)

PodcastCategory

  • id (UUID, primary key)
  • title (varchar, required)
  • description (text, nullable)

Podcast

  • id (UUID, primary key)
  • user (ForeignKey to User)
  • category (ForeignKey to PodcastCategory, nullable)
  • title (varchar, required)
  • description (text, nullable)
  • thumbnail (ImageField, nullable)
  • media_embed_url (URLField, nullable)
  • total_views (PositiveIntegerField, default: 0)
  • total_likes (PositiveIntegerField, default: 0)

PodcastView

  • id (UUID, primary key)
  • podcast (ForeignKey to Podcast)
  • user (ForeignKey to User)

Help and Support Models

Global

  • id (UUID, primary key)
  • key (varchar, required)
  • value (text, nullable)
  • data (jsonb, nullable)

FAQCategory

  • id (UUID, primary key)
  • name (varchar, required)
  • description (text, nullable)

FAQ

  • id (UUID, primary key)
  • faq_category (ForeignKey to FAQCategory)
  • question (varchar, required)
  • answer (text, required)

ContactUs

  • id (UUID, primary key)
  • name (varchar, required)
  • email (EmailField, required)
  • subject (varchar, required)
  • description (text, required)
  • user (ForeignKey to User, nullable)

Subscription Models

CompanySubscription

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • plan (varchar, required)
  • status (varchar, choices: trial, active, past_due, canceled, expired, non_renewing, default: trial)
  • next_billing_date (datetime, nullable)
  • trial_start_date (datetime, nullable)
  • trial_end_date (datetime, nullable)
  • chargebee_subscription_id (varchar, nullable)
  • payment_method_id (varchar, nullable)
  • type (varchar, choices: trial_plan, monthly, annual, default: annual)
  • previous_state (varchar, nullable)
  • chargebee_event_id (varchar, required)

CompanyTransaction

  • id (UUID, primary key)
  • company (ForeignKey to Company)
  • subscription (ForeignKey to CompanySubscription)
  • chargebee_invoice_id (varchar, nullable)
  • amount (DecimalField, required)
  • status (varchar, choices: pending, success, failed, default: pending)
  • payment_method (varchar, nullable)
  • invoice_url (FileField, nullable)
  • metadata (jsonb, nullable)
  • payment_gateway (varchar, nullable)
  • transaction_id (varchar, nullable)
  • chargebee_transaction_id (varchar, nullable)
  • discounted_amount (DecimalField, nullable)
  • chargebee_event_id (varchar, nullable)

Admin Models

Adminfeedback

  • id (UUID, primary key)
  • user (ForeignKey to User, nullable)
  • rating (DecimalField, required)
  • message (text, required)
  • is_active (boolean, default: false)