Business
extends Model
in package
Business model for client restaurant/food business profiles.
Tags
Table of Contents
Properties
- $db : PDO
- $fillable : array<string|int, mixed>
- $primaryKey : string
- $table : string
Methods
- __construct() : mixed
- Initialize model with database connection.
- all() : array<string|int, mixed>
- Get all records from the table.
- count() : int
- Count records matching optional conditions.
- create() : int
- Create a new record.
- delete() : bool
- Delete a record by primary key.
- deleteWithFiles() : bool
- Delete a business and its associated uploaded files.
- find() : array<string|int, mixed>|null
- Find a record by primary key.
- findBy() : array<string|int, mixed>|null
- Find a record by a specific field value.
- findBySlug() : array<string|int, mixed>|null
- Find a business by its URL slug.
- generateSlug() : string
- Generate a URL-friendly slug from a business name.
- getActive() : array<string|int, mixed>
- Get all active businesses.
- getDb() : PDO
- Get the underlying PDO connection.
- paginate() : array<string|int, mixed>
- Paginate records matching conditions.
- paginatedAll() : array<string|int, mixed>
- Get a paginated list of all businesses.
- query() : PDOStatement
- Execute a raw SQL query with parameter binding.
- setAdminOverride() : bool
- Set admin override flag for site mode.
- setSiteMode() : bool
- Set the site mode for a business.
- toggleOrdersPaused() : bool
- Toggle the orders-paused flag for a business.
- update() : bool
- Update a record by primary key.
- updateOnboardingStep() : bool
- Update the current onboarding step for a business.
- updateSubscriptionStatus() : bool
- Update subscription status fields on a business.
- where() : array<string|int, mixed>
- Find records matching conditions.
- filterFillable() : array<string|int, mixed>
- Filter data to only include fillable fields.
Properties
$db
protected
PDO
$db
Database connection
$fillable
protected
array<string|int, mixed>
$fillable
= ['name', 'slug', 'business_type', 'description', 'tagline', 'logo_path', 'favicon_path', 'group_id', 'address_street', 'address_city', 'address_state', 'address_zip', 'phone', 'email', 'website_url', 'social_facebook', 'social_instagram', 'social_twitter', 'social_tiktok', 'payment_processor', 'payment_api_key', 'payment_secret_key', 'accepts_cash', 'accepts_card_onsite', 'accepts_online_payment', 'accepts_venmo', 'venmo_handle', 'accepts_cashapp', 'cashapp_handle', 'accepts_paypal', 'paypal_email', 'accepts_google_pay', 'accepts_apple_pay', 'pwa_push_enabled', 'pwa_install_prompt', 'pwa_offline_menu', 'senior_discount_enabled', 'senior_discount_type', 'senior_discount_value', 'senior_discount_min_age', 'senior_discount_label', 'vapid_public_key', 'vapid_private_key', 'tax_rate', 'tip_options', 'currency', 'timezone', 'storefront_language', 'admin_language', 'order_lead_time', 'orders_paused', 'orders_paused_message', 'checkout_utensil_options', 'thankyou_message', 'default_asap_delay', 'site_status', 'site_status_admin_override', 'onboarding_step', 'onboarding_completed', 'is_active', 'is_wheelchair_accessible', 'accepts_reservations', 'reservation_duration_minutes', 'reservation_buffer_minutes', 'max_party_size', 'min_party_size', 'reservation_lead_hours', 'reservation_advance_days', 'tip_pool_method', 'tip_pool_config', 'overtime_threshold', 'overtime_multiplier', 'pay_period_type', 'max_shift_hours', 'subscription_tier', 'subscription_status']
Mass-assignable fields
$primaryKey
protected
string
$primaryKey
= 'id'
Primary key column
$table
protected
string
$table
= 'businesses'
Database table name
Methods
__construct()
Initialize model with database connection.
public
__construct() : mixed
all()
Get all records from the table.
public
all([string $orderBy = 'id' ][, string $direction = 'ASC' ]) : array<string|int, mixed>
Parameters
- $orderBy : string = 'id'
-
Column to order by
- $direction : string = 'ASC'
-
Sort direction (ASC or DESC)
Return values
array<string|int, mixed>count()
Count records matching optional conditions.
public
count([array<string|int, mixed> $conditions = [] ]) : int
Parameters
- $conditions : array<string|int, mixed> = []
-
Associative array of field => value pairs
Return values
intcreate()
Create a new record.
public
create(array<string|int, mixed> $data) : int
Parameters
- $data : array<string|int, mixed>
-
Associative array of field => value pairs
Return values
int —The ID of the newly created record
delete()
Delete a record by primary key.
public
delete(int $id) : bool
Parameters
- $id : int
-
Primary key value
Return values
booldeleteWithFiles()
Delete a business and its associated uploaded files.
public
deleteWithFiles(int $id) : bool
Removes logo and photo files from disk before deleting the business record. ON DELETE CASCADE handles related DB records.
Parameters
- $id : int
-
Business ID
Return values
boolfind()
Find a record by primary key.
public
find(int $id) : array<string|int, mixed>|null
Parameters
- $id : int
-
Primary key value
Return values
array<string|int, mixed>|nullfindBy()
Find a record by a specific field value.
public
findBy(string $field, mixed $value) : array<string|int, mixed>|null
Parameters
- $field : string
-
Column name
- $value : mixed
-
Value to match
Return values
array<string|int, mixed>|nullfindBySlug()
Find a business by its URL slug.
public
findBySlug(string $slug) : array<string|int, mixed>|null
Parameters
- $slug : string
-
URL-friendly slug
Return values
array<string|int, mixed>|nullgenerateSlug()
Generate a URL-friendly slug from a business name.
public
generateSlug(string $name) : string
Parameters
- $name : string
-
Business name
Return values
stringgetActive()
Get all active businesses.
public
getActive() : array<string|int, mixed>
Return values
array<string|int, mixed>getDb()
Get the underlying PDO connection.
public
getDb() : PDO
Return values
PDOpaginate()
Paginate records matching conditions.
public
paginate(array<string|int, mixed> $conditions, int $page, int $perPage[, string $orderBy = 'id' ][, string $direction = 'ASC' ]) : array<string|int, mixed>
Parameters
- $conditions : array<string|int, mixed>
-
Associative array of field => value pairs
- $page : int
-
Current page number (1-based)
- $perPage : int
-
Records per page
- $orderBy : string = 'id'
-
Column to order by
- $direction : string = 'ASC'
-
Sort direction (ASC or DESC)
Return values
array<string|int, mixed> —Pagination result with data, total, page, per_page, total_pages
paginatedAll()
Get a paginated list of all businesses.
public
paginatedAll(int $limit, int $offset) : array<string|int, mixed>
Parameters
- $limit : int
-
Max results per page
- $offset : int
-
Offset for pagination
Return values
array<string|int, mixed>query()
Execute a raw SQL query with parameter binding.
public
query(string $sql[, array<string|int, mixed> $params = [] ]) : PDOStatement
Parameters
- $sql : string
-
SQL query string
- $params : array<string|int, mixed> = []
-
Bound parameters
Return values
PDOStatementsetAdminOverride()
Set admin override flag for site mode.
public
setAdminOverride(int $id, bool $override) : bool
Parameters
- $id : int
-
Business ID
- $override : bool
-
Whether admin override is active
Return values
boolsetSiteMode()
Set the site mode for a business.
public
setSiteMode(int $id, string $mode) : bool
Parameters
- $id : int
-
Business ID
- $mode : string
-
One of: dev, suspend, live
Return values
booltoggleOrdersPaused()
Toggle the orders-paused flag for a business.
public
toggleOrdersPaused(int $id, bool $paused[, string $message = '' ]) : bool
Parameters
- $id : int
-
Business ID
- $paused : bool
-
Whether orders are paused
- $message : string = ''
-
Custom message to display when paused
Return values
boolupdate()
Update a record by primary key.
public
update(int $id, array<string|int, mixed> $data) : bool
Parameters
- $id : int
-
Primary key value
- $data : array<string|int, mixed>
-
Associative array of field => value pairs
Return values
boolupdateOnboardingStep()
Update the current onboarding step for a business.
public
updateOnboardingStep(int $id, int $step) : bool
Parameters
- $id : int
-
Business ID
- $step : int
-
Step number (1-5)
Return values
boolupdateSubscriptionStatus()
Update subscription status fields on a business.
public
updateSubscriptionStatus(int $id, string $tier, string $status) : bool
Parameters
- $id : int
-
Business ID
- $tier : string
-
Subscription tier
- $status : string
-
Subscription status
Return values
boolwhere()
Find records matching conditions.
public
where(array<string|int, mixed> $conditions[, string $orderBy = 'id' ][, string $direction = 'ASC' ]) : array<string|int, mixed>
Parameters
- $conditions : array<string|int, mixed>
-
Associative array of field => value pairs
- $orderBy : string = 'id'
-
Column to order by
- $direction : string = 'ASC'
-
Sort direction
Return values
array<string|int, mixed>filterFillable()
Filter data to only include fillable fields.
protected
filterFillable(array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
-
Input data
Return values
array<string|int, mixed> —Filtered data