🎨 Transmogrifier API Test - Complete ArtworkTO Structure

Test: Minimal Input → Complete ArtworkTO

This test shows that even with minimal input data, the system returns a COMPLETE ArtworkTO structure with all fields present.

Input Data (minimal)

Array
(
    [title] => Test Artwork
    [artist] => Array
        (
            [name] => John Doe
        )

    [price] => 5000
)

Output: COMPLETE ArtworkTO (all fields present)

Meta: ✓
Physical: ✓
History: ✓
Financial: ✓
Transport: ✓
Validation: ✓
FieldMap: ✓
Eav: ✓
Artists Structure: ✓ Has numbered keys ('0') | ✓ Has 'usage' field
EAV Structure: ✓ Has numbered keys ('0') | ✓ Has 'usage' field
Array
(
    [name] => ArtworkTO-unknown
    [id] => f138badb-ffcf-4ae8-9494-e200b0a6c4b2
    [data] => Array
        (
            [status] => success
            [data] => 
            [source] => artlogic
            [timestamp] => 2025-12-11T20:50:46.726Z
        )

    [source] => artlogic
    [usage] => The ArtworkTransferObject is used as a common format for moving data between compliant Art Management systems
    [Aliases] => Array
        (
        )

    [Meta] => Array
        (
            [tar_id] => 
            [Artists] => Array
                (
                    [0] => Array
                        (
                            [name] => John Doe
                            [first_name] => 
                            [middle_name] => 
                            [last_name] => 
                            [ulan_id] => 
                            [ids] => Array
                                (
                                )

                        )

                    [usage] => Artists goes here, input can be a single string or an array of names or a ulanid
                    [multiple] => 1
                )

            [title] => Test Artwork
            [date] => 
            [usage] => Artwork Metadata goes here
            [multiple] => 
            [ids] => Array
                (
                    [ulan_id] => 
                    [wiki_qid] => 
                    [artsy_id] => 
                    [artnet_id] => 
                    [europeana_id] => 
                    [artrabbit_id] => 
                )

            [File] => Array
                (
                    [Image] => Array
                        (
                        )

                    [Document] => Array
                        (
                        )

                )

            [InventoryNumber] => Array
                (
                    [0] => Array
                        (
                            [is_primary] => 
                            [number] => 
                            [source] => 
                        )

                    [usage] => Artworks can have 1 or many Inventory Numbers
                    [multiple] => 1
                )

        )

    [Physical] => Array
        (
            [production_date] => 
            [signature] => 
            [notes] => 
            [description] => 
            [Dimensions] => Array
                (
                    [keys] => Array
                        (
                            [0] => width
                            [1] => height
                            [2] => depth
                            [3] => weight
                            [4] => diameter
                            [5] => imageWidth
                            [6] => imageHeight
                            [7] => volume
                            [8] => duration
                            [Unit] => Array
                                (
                                    [0] => meter
                                    [1] => centimeter
                                    [2] => millimeter
                                    [3] => gram
                                    [4] => kilogram
                                    [5] => inch
                                    [6] => pound
                                    [7] => second
                                    [8] => minute
                                    [9] => hour
                                )

                        )

                    [width] => Array
                        (
                            [value] => 
                            [unit] => cm
                        )

                    [height] => Array
                        (
                            [value] => 
                            [unit] => cm
                        )

                    [depth] => Array
                        (
                            [value] => 
                            [unit] => cm
                        )

                    [weight] => Array
                        (
                            [value] => 
                            [unit] => kg
                        )

                )

            [Material] => Array
                (
                    [tar_id] => 
                    [MaterialType] => Array
                        (
                            [0] => digital
                            [1] => photography
                            [2] => painting
                            [3] => work_on_paper
                            [4] => moving_picture
                            [5] => performance
                        )

                )

            [Condition] => Array
                (
                    [Current] => 
                    [History] => Array
                        (
                        )

                    [multiple] => 
                )

            [usage] => All Artwork Physical data goes in this object
            [multiple] => 
        )

    [History] => Array
        (
            [Provenance] => Array
                (
                )

            [Exhibition] => Array
                (
                    [Current] => Array
                        (
                            [multiple] => 
                            [ids] => Array
                                (
                                    [tar_id] => 
                                    [ulan_id] => 
                                    [wiki_qid] => 
                                    [artsy_id] => 
                                    [artnet_id] => 
                                    [europeana_id] => 
                                    [artlogic_id] => 
                                    [artrabbit_id] => 
                                )

                        )

                    [Historical] => Array
                        (
                            [Exhibition] => Array
                                (
                                )

                            [multiple] => 1
                        )

                    [multiple] => 
                )

            [usage] => All Artwork Historical data goes in this object
            [multiple] => 
        )

    [Financial] => Array
        (
            [Insurance] => Array
                (
                )

            [Retail] => Array
                (
                    [0] => Array
                        (
                            [price] => 5000
                            [currency_code] => GBP
                            [vat] => 0
                        )

                )

            [Ownership] => Array
                (
                )

            [usage] => All Artwork Financial data goes in this object
            [Transaction] => Array
                (
                    [multiple] => 
                    [ids] => Array
                        (
                            [collekton_id] => 
                            [artsy_id] => 
                            [artsystems_id] => 
                            [artcloud_id] => 
                            [artbase_id] => 
                        )

                )

            [multiple] => 
        )

    [Transport] => Array
        (
            [Contact] => Array
                (
                    [role] => 
                    [email] => 
                    [name] => 
                    [phone] => 
                )

            [Location] => Array
                (
                    [Access] => Array
                        (
                        )

                    [Address] => Array
                        (
                            [format] => 
                            [street] => 
                            [postal_code] => 
                            [city] => 
                            [country_code] => 
                        )

                    [Geo] => Array
                        (
                            [lat] => 
                            [lng] => 
                        )

                    [usage] => The Transport.Location is the place where the artwork can be picked up
                )

            [Packaging] => Array
                (
                    [Physical] => Array
                        (
                            [Dimensions] => Array
                                (
                                    [width] => 
                                    [height] => 
                                    [depth] => 
                                    [Weight] => Array
                                        (
                                            [weight] => 
                                            [units] => kg
                                        )

                                    [Material] => Array
                                        (
                                        )

                                )

                        )

                    [Requirements] => Array
                        (
                            [Handeling] => Array
                                (
                                )

                            [Environmental] => Array
                                (
                                )

                            [Insurance] => Array
                                (
                                )

                        )

                )

            [Insurance] => Array
                (
                    [type] => nail to nail
                    [Policy] => Array
                        (
                        )

                )

        )

    [Validation] => Array
        (
            [Certificates] => Array
                (
                )

        )

    [FieldMap] => Array
        (
            [native] => Array
                (
                )

            [inbound] => Array
                (
                    [0] => Array
                        (
                            [field] => artwork_id
                            [path] => Meta.ids.artlogic_id
                        )

                    [1] => Array
                        (
                            [field] => title
                            [path] => Meta.title
                        )

                    [2] => Array
                        (
                            [field] => artist
                            [path] => Meta.Artists[0]
                        )

                    [3] => Array
                        (
                            [field] => medium
                            [path] => Physical.Material.name
                        )

                    [4] => Array
                        (
                            [field] => height
                            [path] => Physical.Dimensions.height.value
                        )

                    [5] => Array
                        (
                            [field] => width
                            [path] => Physical.Dimensions.width.value
                        )

                    [6] => Array
                        (
                            [field] => price
                            [path] => Financial.Retail[0].price
                        )

                )

            [outbound] => Array
                (
                    [0] => Array
                        (
                            [field] => Meta.ids.artlogic_id
                            [path] => artwork_id
                        )

                    [1] => Array
                        (
                            [field] => Meta.title
                            [path] => title
                        )

                    [2] => Array
                        (
                            [field] => Meta.Artists[0]
                            [path] => artist
                        )

                    [3] => Array
                        (
                            [field] => Physical.Material.name
                            [path] => medium
                        )

                    [4] => Array
                        (
                            [field] => Physical.Dimensions.height.value
                            [path] => height
                        )

                    [5] => Array
                        (
                            [field] => Physical.Dimensions.width.value
                            [path] => width
                        )

                    [6] => Array
                        (
                            [field] => Financial.Retail[0].price
                            [path] => price
                        )

                )

        )

    [Eav] => Array
        (
            [0] => Array
                (
                    [field_name] => 
                    [field_type] => string
                    [field_value] => 
                )

            [usage] => EAV (Entity Attribute Value) can be used to store or map data that may not exist in a given system
            [multiple] => 1
        )

)

✅ Success: Complete ArtworkTO Structure

The system always returns the complete ArtworkTO structure regardless of input size!