MosaicModel
extends Model
in package
Class MosaicModel
- Handles the core business logic for mosaics
- Manages temporary generation, persistence, cost calculation, and visualization of lego patterns
Table of Contents
Constants
- DELIVERY_FEE = 4.99
- HANDLING_FEE = 5.99
- MARGIN_COEFF = 2
Properties
- $table : string
Methods
- calculatePriceFromContent() : float
- Calculates price directly from raw content string without db lookup
- countPiecesFromContent() : int
- Counts total bricks required based on raw content
- deductStockFromMosaic() : void
- Reduces inventory count when a mosaic is finalized
- find() : mixed
- Finds a specific record by its ID.
- findAll() : array<string|int, mixed>|false
- Retrieves all records from the associated table.
- generateTemporaryMosaics() : array<string|int, mixed>
- Generates multiple mosaic variations (e.g., standard, optimized, stock-based) using the external java engine
- getBricksList() : array<string|int, mixed>
- Parses mosaic content to produce a list of required bricks
- getMosaicGridHtml() : array<string|int, mixed>|string
- Generates html for a grid representation (used for quick preview)
- getMosaicPlanData() : array<string|int, mixed>|null
- Extracts detailed plan data for generating printable instructions
- getMosaicPrice() : float
- Calculates the price of a stored mosaic based on its raw cost metadata
- getMosaicsByOrderId() : array<string|int, mixed>
- Retrieves all mosaics associated with a specific order
- getMosaicVisual() : string|null
- Generates a visual representation (png) of a stored mosaic
- hasComposition() : bool
- Checks if the composition (recipe) for a mosaic has already been saved
- requete() : PDOStatement|false
- Executes a SQL query (prepared or direct).
- saveMosaicComposition() : bool
- Converts the brick list into database records for order processing
- saveSelectedMosaic() : int|false
- Persists a selected mosaic configuration to the database
- findItemId() : int|false
- Resolves specific item id based on brick characteristics
- updateBriquesFile() : void
- Updates the temporary input file with current stock levels for java processing
Constants
DELIVERY_FEE
public
float
DELIVERY_FEE
= 4.99
Standard shipping cost.
HANDLING_FEE
public
float
HANDLING_FEE
= 5.99
Fixed fee for order preparation and handling.
MARGIN_COEFF
public
int
MARGIN_COEFF
= 2
Coefficient applied to the raw cost to determine the selling price.
Properties
$table
protected
string
$table
= 'Mosaic'
The database table associated with the model.
Methods
calculatePriceFromContent()
Calculates price directly from raw content string without db lookup
public
calculatePriceFromContent(string $pavageContent) : float
Parameters
- $pavageContent : string
Return values
floatcountPiecesFromContent()
Counts total bricks required based on raw content
public
countPiecesFromContent(string $pavageContent) : int
Parameters
- $pavageContent : string
Return values
intdeductStockFromMosaic()
Reduces inventory count when a mosaic is finalized
public
deductStockFromMosaic(int $idMosaic) : void
Parameters
- $idMosaic : int
find()
Finds a specific record by its ID.
public
find(int $id) : mixed
Parameters
- $id : int
-
The record identifier.
Return values
mixed —The record object or false if not found.
findAll()
Retrieves all records from the associated table.
public
findAll() : array<string|int, mixed>|false
Return values
array<string|int, mixed>|false —List of records.
generateTemporaryMosaics()
Generates multiple mosaic variations (e.g., standard, optimized, stock-based) using the external java engine
public
generateTemporaryMosaics(int $idImage, string $blobData, string $extension) : array<string|int, mixed>
Parameters
- $idImage : int
-
the image identifier
- $blobData : string
-
binary image content
- $extension : string
-
image file extension
Tags
Return values
array<string|int, mixed> —resulting mosaic data (previews, costs, piece counts)
getBricksList()
Parses mosaic content to produce a list of required bricks
public
getBricksList(int $idMosaic) : array<string|int, mixed>
Parameters
- $idMosaic : int
Return values
array<string|int, mixed> —sorted list of bricks (size, color, count)
getMosaicGridHtml()
Generates html for a grid representation (used for quick preview)
public
getMosaicGridHtml(int $idMosaic) : array<string|int, mixed>|string
Parameters
- $idMosaic : int
Return values
array<string|int, mixed>|string —html string and legend array
getMosaicPlanData()
Extracts detailed plan data for generating printable instructions
public
getMosaicPlanData(int $idMosaic) : array<string|int, mixed>|null
Parameters
- $idMosaic : int
Return values
array<string|int, mixed>|null —plan details
getMosaicPrice()
Calculates the price of a stored mosaic based on its raw cost metadata
public
getMosaicPrice(int $idMosaic) : float
Parameters
- $idMosaic : int
Return values
floatgetMosaicsByOrderId()
Retrieves all mosaics associated with a specific order
public
getMosaicsByOrderId(int $orderId) : array<string|int, mixed>
Parameters
- $orderId : int
Return values
array<string|int, mixed>getMosaicVisual()
Generates a visual representation (png) of a stored mosaic
public
getMosaicVisual(int $idMosaic) : string|null
Parameters
- $idMosaic : int
Return values
string|null —base64 encoded image or null
hasComposition()
Checks if the composition (recipe) for a mosaic has already been saved
public
hasComposition(int $idMosaic) : bool
Parameters
- $idMosaic : int
Return values
boolrequete()
Executes a SQL query (prepared or direct).
public
requete(string $sql[, array<string|int, mixed>|null $attributs = null ]) : PDOStatement|false
Parameters
- $sql : string
-
The SQL query string.
- $attributs : array<string|int, mixed>|null = null
-
Optional parameters for prepared statements.
Return values
PDOStatement|false —The result statement.
saveMosaicComposition()
Converts the brick list into database records for order processing
public
saveMosaicComposition(int $idMosaic) : bool
Parameters
- $idMosaic : int
Return values
boolsaveSelectedMosaic()
Persists a selected mosaic configuration to the database
public
saveSelectedMosaic(int $idImage, string $content, string $type) : int|false
Parameters
- $idImage : int
- $content : string
-
layout instructions
- $type : string
-
generation strategy used
Return values
int|false —the new mosaic id or false on failure
findItemId()
Resolves specific item id based on brick characteristics
private
findItemId(string $size, string $hexColor) : int|false
Parameters
- $size : string
-
e.g., "2x4"
- $hexColor : string
Return values
int|falseupdateBriquesFile()
Updates the temporary input file with current stock levels for java processing
private
updateBriquesFile(string $filePath) : void
Parameters
- $filePath : string