# Company Model | DB Table Name | {wp_db_prefix}_fc_companies | |---------------|--------------------------------------------------------------------------| | Schema | Check Schema | | Source File | fluent-crm/app/Models/Company.php | | Name Space | FluentCrm\App\Models | | Class | FluentCrm\App\Models\Company | ## Attributes
Attribute Data Type Comment
id Integer
hash String Auto-generated on create
name String
owner_id Integer FK to fc_subscribers.id
industry String
type String
email String
phone String
address_line_1 String
address_line_2 String
postal_code String
city String
state String
country String
timezone String
employees_number Integer
description Text
logo String / URL
linkedin_url String / URL
facebook_url String / URL
twitter_url String / URL
website String / URL
meta Text Serialized array, auto serialize/unserialize via mutators. Contains custom_values.
date_of_start Date
created_at Date Time
updated_at Date Time
## Usage Please check Model Basic for Common methods. ### Accessing Attributes ```php $company = FluentCrm\App\Models\Company::find(1); $company->id; // returns id $company->name; // returns company name $company->meta; // returns deserialized array (auto via accessor) $company->meta['custom_values']; // returns custom field values ``` ## Fillable Attributes ```php 'hash', 'name', 'owner_id', 'industry', 'type', 'email', 'phone', 'address_line_1', 'address_line_2', 'postal_code', 'city', 'state', 'country', 'timezone', 'employees_number', 'description', 'logo', 'linkedin_url', 'facebook_url', 'twitter_url', 'meta', 'website', 'date_of_start', 'created_at', 'updated_at' ``` ## Scopes ### searchBy() Search companies by name, phone, description, and email - Parameters - $search - String #### Usage: ```php $companies = FluentCrm\App\Models\Company::searchBy('Acme')->get(); ``` ### ofType() Filter companies by type - Parameters - $status - String #### Usage: ```php $companies = FluentCrm\App\Models\Company::ofType('enterprise')->get(); ``` ### ofIndustry() Filter companies by industry - Parameters - $status - String #### Usage: ```php $companies = FluentCrm\App\Models\Company::ofIndustry('technology')->get(); ``` ## Relations ### subscribers Access all associated contacts of a company (via pivot table) - return `FluentCrm\App\Models\Subscriber` Model Collections (BelongsToMany via `fc_subscriber_pivot`) #### Example: ```php // Accessing subscribers $contacts = $company->subscribers; // Filter companies by subscriber $companies = FluentCrm\App\Models\Company::whereHas('subscribers', function($query) { $query->where('status', 'subscribed'); })->get(); ``` ### owner Access the owner contact of the company - return `FluentCrm\App\Models\Subscriber` Model (BelongsTo via `owner_id`) #### Example: ```php // Accessing owner $owner = $company->owner; ``` ### notes Access all notes for this company - return `FluentCrm\App\Models\CompanyNote` Model Collections ::: tip Shared Table Notes are stored in the `fc_subscriber_notes` table with `status = '_company_note_'`. The `subscriber_id` column stores the company ID in this context. ::: #### Example: ```php // Accessing company notes $notes = $company->notes; ```
## Methods ### getContactsCount() Get the number of associated contacts - Parameters - none - Returns `int` #### Usage ```php $count = $company->getContactsCount(); ``` ### getCustomValues() Get custom field values from the meta attribute - Parameters - none - Returns `array` #### Usage ```php $customValues = $company->getCustomValues(); ``` ### mappables() Get human-readable label map for all importable/mappable field keys - Parameters - none - Returns `array` #### Usage ```php $fieldMap = FluentCrm\App\Models\Company::mappables(); ```