Dentals table (rewrite: /d)

- id (AUTO_INCREMENT)
- dental_id (CHARSET)
- secret_key (CHARSET)
- dental_status (Select) // accepts text - do not want specify options in database
- patient_name (Text)
- author_id (user_id)

- author_info (JSON Simple ARRAY)
    -- name (user's firstname + lastname)
    -- phone
    -- address
    -- address_note
    -- geo_location

- attachments (JSON ARRAY in ARRAY)
    "file_id": "file_abc123def456",
    "original_name": "Patient_Scan_John_Doe.jpg",
    "stored_name": "a1b2c3d4e5f6_1705123456.jpg",
    "file_path": "2025/08/user_123/dental_257", // Year/Month/user/order/ -> folder structute
    "file_size": 2048576,
    "mime_type": "image/jpeg",
    "upload_date": TIMESTAMPSS,
    "uploaded_by": 123,
    "is_temp": BOOLEAN,
    "hash": "a1b2c3d4e5f6"

- links (JSON ARRAY in ARRAY)
    -- title
    -- url
    -- source

- services (JSON ARRAY)
    -- service_type (TEXT)
    -- sub-services (JSON ARRAY)
    -- extras (comma separated)

- order_note (Text)
- invoice_id (JSON ARRAY)
- assignee (JSON ARRAY)
- priority (Select) // accepts text - do not want specify options in database
- start_date (TIMESTAMPSS)
- due_date (TIMESTAMPSS)
- dental_parent (id)
- aligners (JSON ARRAY)
    -- Count (Number)
    -- Stage (Number)
    -- From (Number)
    -- To (Number)
    -- date (TIMESTAMPSS)
- created_at (TIMESTAMPSS)

Custom Meta Data Table:
- patient_age
- shipping_estimate_date
- customer_feedback

===================================
===================================
===================================

Dental Chat Table:

id (AUTO_INCREMENT)
dental_id
message_type ('text', 'file', 'image', 'voice',  'mixed', 'system')
message_content
attacments
reply-to
reaction
sender_id
parent_message_id
message_purpose

message_status ('sending', 'failed', 'sent', 'read')

sent_at
edited_at
read_at
deleted_at

created at


===================================
===================================
===================================

Upload files:
- File input - maximum 15 files - maximum size (each file): 200 MB - (optional)

 - Input Fields Allowed Format:
    -- PNG - image/png
    -- JPEG - image/jpeg
    -- WebP - image/webp
    -- HEIC / HEIF - image/heic, image/heif, image/heic-sequence, image/heif-sequence

    -- MP4 - video/mp4
    -- WebM - video/webm
    -- MOV - video/quicktime
    -- AVI - video/x-msvideo
    -- MKV - video/x-matroska

    -- mp3 - audio/mpeg
    -- wav - audio/wav
    -- ogg - audio/ogg
    -- m4a - audio/mp4
    -- aac - audio/aac
    -- flac - audio/flac

    -- ZIP - application/zip
    -- RAR - application/vnd.rar, application/x-rar-compressed
    -- 7Z - application/x-7z-compressed
    -- TAR - application/x-tar
    -- GZIP - application/gzip

    -- STL - application/vnd.ms-pki.stl, application/sla, application/x-navistyle
    -- FLY - text/vnd.fly

    -- PDF - application/pdf
    -- DOC - application/msword
    -- DOCS - application/vnd.openxmlformats-officedocument.wordprocessingml.document
    -- xls - application/vnd.ms-excel
    -- xlsx - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    -- ppt - application/vnd.ms-powerpoint
    -- pptx - application/vnd.openxmlformats-officedocument.presentationml.presentation
    -- csv - text/csv
    -- txt - text/plain
    -- rtf - application/rtf