Attachment
Attachment stores uploaded file metadata for attachable records, including message attachments and group covers.
This model is tightly coupled to storage config, URL generation, and file cleanup.
Core fields:
| Field | Purpose |
|---|---|
attachable_id |
Parent model id. |
attachable_type |
Parent model morph class. |
file_path |
Storage path on the configured disk. |
file_name |
Stored file name. |
original_name |
Original uploaded file name. |
mime_type |
Stored MIME type. |
url |
Computed URL accessor based on storage config. |
Important Relationships
attachable()
Returns the model this attachment belongs to, usually a Message or Group.
$attachment->attachable
Important Accessors
url
Returns a public URL or a temporary private URL depending on the global Wirechat storage configuration.
$attachment->url
size
Returns the file size in bytes when the file exists on disk.
$attachment->size
formatted_size
Returns the file size in a human-readable format.
$attachment->formatted_size
extension
Returns an extension-like value derived from the MIME type.
$attachment->extension
clean_mime_type
Returns the MIME subtype, such as png, pdf, or zip.
$attachment->clean_mime_type
If you customize this model, preserve the filesystem cleanup behavior unless you are intentionally replacing it with your own storage lifecycle.