Collection Revision History

Snapshot, switch, export, spec, and preflight Collection versions without overwriting old files.

COL-20260519155851-2af8cc / collection #7

JP blue green leaf collection test

Active revision id: 4

Revision Compare

{
    "collection_id": 7,
    "left": {
        "revision_id": 30,
        "revision_no": 20,
        "label": "v20",
        "is_active": false
    },
    "right": {
        "revision_id": 175,
        "revision_no": 27,
        "label": "v27",
        "is_active": false
    },
    "summary": {
        "master_changed": true,
        "item_count_left": 3,
        "item_count_right": 3,
        "items_added": 0,
        "items_removed": 0,
        "items_changed": 3,
        "panel_prints_changed": 5,
        "preflight_score_left": null,
        "preflight_score_right": null,
        "preflight_changed": false,
        "zip_changed": false,
        "spec_changed": true
    },
    "master": {
        "artwork": {
            "left_path": "/assets/pod/collections/7/revisions/v20/master/master_artwork.png",
            "right_path": "/assets/pod/collections/7/revisions/v27/master/master_artwork.png",
            "same_path": false,
            "left_exists": true,
            "right_exists": true,
            "left_size_bytes": 32488,
            "right_size_bytes": 32488,
            "same_size": true,
            "left_width": 2500,
            "left_height": 500,
            "right_width": 2500,
            "right_height": 500,
            "same_dimensions": true
        },
        "print": {
            "left_path": "/assets/pod/collections/7/revisions/v20/master/master_print.png",
            "right_path": "/assets/pod/collections/7/revisions/v27/master/master_print.png",
            "same_path": false,
            "left_exists": true,
            "right_exists": true,
            "left_size_bytes": 56121,
            "right_size_bytes": 56121,
            "same_size": true,
            "left_width": 3000,
            "left_height": 3000,
            "right_width": 3000,
            "right_height": 3000,
            "same_dimensions": true
        }
    },
    "items": [
        {
            "key": "item:17",
            "template_id": 28,
            "template_name_left": "硬式洗漱墊",
            "template_name_right": "硬式洗漱墊",
            "collection_item_id_left": 17,
            "collection_item_id_right": 17,
            "apply_mode_left": "tile-cover",
            "apply_mode_right": "tile-cover",
            "panel_count_left": 1,
            "panel_count_right": 1,
            "mockup": {
                "left_path": "/assets/pod/collections/7/revisions/v20/mockups/item_17_mockup.png",
                "right_path": "/assets/pod/collections/7/revisions/v27/mockups/item_17_mockup.png",
                "same_path": false,
                "left_exists": true,
                "right_exists": true,
                "left_size_bytes": 51900,
                "right_size_bytes": 51900,
                "same_size": true,
                "left_width": 1000,
                "left_height": 472,
                "right_width": 1000,
                "right_height": 472,
                "same_dimensions": true
            },
            "print": {
                "left_path": "/assets/pod/collections/7/revisions/v20/prints/item_17_print.png",
                "right_path": "/assets/pod/collections/7/revisions/v27/prints/item_17_print.png",
                "same_path": false,
                "left_exists": true,
                "right_exists": true,
                "left_size_bytes": 56121,
                "right_size_bytes": 56121,
                "same_size": true,
                "left_width": 3000,
                "left_height": 3000,
                "right_width": 3000,
                "right_height": 3000,
                "same_dimensions": true
            },
            "scene": {
                "left_path": "",
                "right_path": "",
                "same_path": false,
                "left_exists": false,
                "right_exists": false,
                "left_size_bytes": 0,
                "right_size_bytes": 0,
                "same_size": true,
                "left_width": null,
                "left_height": null,
                "right_width": null,
                "right_height": null,
                "same_dimensions": true
            },
            "panel_prints": [],
            "change_status": "changed"
        },
        {
            "key": "item:18",
            "template_id": 27,
            "template_name_left": "硬式杯墊(圓型)",
            "template_name_right": "硬式杯墊(圓型)",
            "collection_item_id_left": 18,
            "collection_item_id_right": 18,
            "apply_mode_left": "cover",
            "apply_mode_right": "cover",
            "panel_count_left": 1,
            "panel_count_right": 1,
            "mockup": {
                "left_path": "/assets/pod/collections/7/revisions/v20/mockups/item_18_mockup.png",
                "right_path": "/assets/pod/collections/7/revisions/v27/mockups/item_18_mockup.png",
                "same_path": false,
                "left_exists": true,
                "right_exists": true,
                "left_size_bytes": 73135,
                "right_size_bytes": 73135,
                "same_size": true,
                "left_width": 371,
                "left_height": 369,
                "right_width": 371,
                "right_height": 369,
                "same_dimensions": true
            },
            "print": {
                "left_path": "/assets/pod/collections/7/revisions/v20/prints/item_18_print.png",
                "right_path": "/assets/pod/collections/7/revisions/v27/prints/item_18_print.png",
                "same_path": false,
                "left_exists": true,
                "right_exists": true,
                "left_size_bytes": 56121,
                "right_size_bytes": 56121,
                "same_size": true,
                "left_width": 3000,
                "left_height": 3000,
                "right_width": 3000,
                "right_height": 3000,
                "same_dimensions": true
            },
            "scene": {
                "left_path": "",
                "right_path": "",
                "same_path": false,
                "left_exists": false,
                "right_exists": false,
                "left_size_bytes": 0,
                "right_size_bytes": 0,
                "same_size": true,
                "left_width": null,
                "left_height": null,
                "right_width": null,
                "right_height": null,
                "same_dimensions": true
            },
            "panel_prints": [],
            "change_status": "changed"
        },
        {
            "key": "item:19",
            "template_id": 20,
            "template_name_left": "五層門櫃(木紋)",
            "template_name_right": "五層門櫃(木紋)",
            "collection_item_id_left": 19,
            "collection_item_id_right": 19,
            "apply_mode_left": "multi_panel",
            "apply_mode_right": "multi_panel",
            "panel_count_left": 5,
            "panel_count_right": 5,
            "mockup": {
                "left_path": "/assets/pod/collections/7/revisions/v20/mockups/item_19_mockup.png",
                "right_path": "/assets/pod/collections/7/revisions/v27/mockups/item_19_mockup.png",
                "same_path": false,
                "left_exists": true,
                "right_exists": true,
                "left_size_bytes": 11632932,
                "right_size_bytes": 11632932,
                "same_size": true,
                "left_width": 2701,
                "left_height": 7009,
                "right_width": 2701,
                "right_height": 7009,
                "same_dimensions": true
            },
            "print": {
                "left_path": "/assets/pod/collections/7/revisions/v20/prints/item_19_print.png",
                "right_path": "/assets/pod/collections/7/revisions/v27/prints/item_19_print.png",
                "same_path": false,
                "left_exists": true,
                "right_exists": true,
                "left_size_bytes": 74941,
                "right_size_bytes": 74941,
                "same_size": true,
                "left_width": 5000,
                "left_height": 1000,
                "right_width": 5000,
                "right_height": 1000,
                "same_dimensions": true
            },
            "scene": {
                "left_path": "",
                "right_path": "",
                "same_path": false,
                "left_exists": false,
                "right_exists": false,
                "left_size_bytes": 0,
                "right_size_bytes": 0,
                "same_size": true,
                "left_width": null,
                "left_height": null,
                "right_width": null,
                "right_height": null,
                "same_dimensions": true
            },
            "panel_prints": [
                {
                    "panel_index": 1,
                    "panel_name_left": "door_1",
                    "panel_name_right": "door_1",
                    "left_path": "/assets/pod/collections/7/revisions/v20/panels/item_19_door_1_print.png",
                    "right_path": "/assets/pod/collections/7/revisions/v27/panels/item_19_door_1_print.png",
                    "same_path": false,
                    "left_exists": true,
                    "right_exists": true,
                    "left_width": 1020,
                    "left_height": 1000,
                    "right_width": 1020,
                    "right_height": 1000,
                    "left_bleed": 20,
                    "right_bleed": 20,
                    "changed": true
                },
                {
                    "panel_index": 2,
                    "panel_name_left": "door_2",
                    "panel_name_right": "door_2",
                    "left_path": "/assets/pod/collections/7/revisions/v20/panels/item_19_door_2_print.png",
                    "right_path": "/assets/pod/collections/7/revisions/v27/panels/item_19_door_2_print.png",
                    "same_path": false,
                    "left_exists": true,
                    "right_exists": true,
                    "left_width": 1040,
                    "left_height": 1000,
                    "right_width": 1040,
                    "right_height": 1000,
                    "left_bleed": 20,
                    "right_bleed": 20,
                    "changed": true
                },
                {
                    "panel_index": 3,
                    "panel_name_left": "door_3",
                    "panel_name_right": "door_3",
                    "left_path": "/assets/pod/collections/7/revisions/v20/panels/item_19_door_3_print.png",
                    "right_path": "/assets/pod/collections/7/revisions/v27/panels/item_19_door_3_print.png",
                    "same_path": false,
                    "left_exists": true,
                    "right_exists": true,
                    "left_width": 1040,
                    "left_height": 1000,
                    "right_width": 1040,
                    "right_height": 1000,
                    "left_bleed": 20,
                    "right_bleed": 20,
                    "changed": true
                },
                {
                    "panel_index": 4,
                    "panel_name_left": "door_4",
                    "panel_name_right": "door_4",
                    "left_path": "/assets/pod/collections/7/revisions/v20/panels/item_19_door_4_print.png",
                    "right_path": "/assets/pod/collections/7/revisions/v27/panels/item_19_door_4_print.png",
                    "same_path": false,
                    "left_exists": true,
                    "right_exists": true,
                    "left_width": 1040,
                    "left_height": 1000,
                    "right_width": 1040,
                    "right_height": 1000,
                    "left_bleed": 20,
                    "right_bleed": 20,
                    "changed": true
                },
                {
                    "panel_index": 5,
                    "panel_name_left": "door_5",
                    "panel_name_right": "door_5",
                    "left_path": "/assets/pod/collections/7/revisions/v20/panels/item_19_door_5_print.png",
                    "right_path": "/assets/pod/collections/7/revisions/v27/panels/item_19_door_5_print.png",
                    "same_path": false,
                    "left_exists": true,
                    "right_exists": true,
                    "left_width": 1020,
                    "left_height": 1000,
                    "right_width": 1020,
                    "right_height": 1000,
                    "left_bleed": 20,
                    "right_bleed": 20,
                    "changed": true
                }
            ],
            "change_status": "changed"
        }
    ],
    "reports": {
        "zip": {
            "left_path": "",
            "right_path": "",
            "same_path": false,
            "left_exists": false,
            "right_exists": false,
            "left_size_bytes": 0,
            "right_size_bytes": 0,
            "same_size": true,
            "left_width": null,
            "left_height": null,
            "right_width": null,
            "right_height": null,
            "same_dimensions": true
        },
        "spec_html": {
            "left_path": "/assets/pod/collections/7/revisions/v20/specs/production_spec.html",
            "right_path": "/assets/pod/collections/7/revisions/v27/specs/production_spec.html",
            "same_path": false,
            "left_exists": true,
            "right_exists": true,
            "left_size_bytes": 4602,
            "right_size_bytes": 4602,
            "same_size": true,
            "left_width": null,
            "left_height": null,
            "right_width": null,
            "right_height": null,
            "same_dimensions": true
        },
        "spec_csv": {
            "left_path": "/assets/pod/collections/7/revisions/v20/specs/production_spec.csv",
            "right_path": "/assets/pod/collections/7/revisions/v27/specs/production_spec.csv",
            "same_path": false,
            "left_exists": true,
            "right_exists": true,
            "left_size_bytes": 2998,
            "right_size_bytes": 2998,
            "same_size": true,
            "left_width": null,
            "left_height": null,
            "right_width": null,
            "right_height": null,
            "same_dimensions": true
        },
        "spec_json": {
            "left_path": "/assets/pod/collections/7/revisions/v20/specs/production_manifest.json",
            "right_path": "/assets/pod/collections/7/revisions/v27/specs/production_manifest.json",
            "same_path": false,
            "left_exists": true,
            "right_exists": true,
            "left_size_bytes": 9455,
            "right_size_bytes": 9456,
            "same_size": false,
            "left_width": null,
            "left_height": null,
            "right_width": null,
            "right_height": null,
            "same_dimensions": true
        },
        "preflight_html": {
            "left_path": "",
            "right_path": "",
            "same_path": false,
            "left_exists": false,
            "right_exists": false,
            "left_size_bytes": 0,
            "right_size_bytes": 0,
            "same_size": true,
            "left_width": null,
            "left_height": null,
            "right_width": null,
            "right_height": null,
            "same_dimensions": true
        },
        "preflight_json": {
            "left_path": "",
            "right_path": "",
            "same_path": false,
            "left_exists": false,
            "right_exists": false,
            "left_size_bytes": 0,
            "right_size_bytes": 0,
            "same_size": true,
            "left_width": null,
            "left_height": null,
            "right_width": null,
            "right_height": null,
            "same_dimensions": true
        },
        "preflight_left": {
            "status": null,
            "score": null
        },
        "preflight_right": {
            "status": null,
            "score": null
        }
    },
    "warnings": [],
    "generated_at": "2026-06-12T23:53:42+00:00"
}
v27
v27 inactive items 3 panels 5

v27

Reason: manual_snapshot / Created: 2026-06-12 19:00:11
Master: /assets/pod/collections/7/revisions/v27/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v27/master/master_print.png
v26
v26 inactive items 3 panels 5

v26

Reason: manual_snapshot / Created: 2026-06-12 18:24:50
Master: /assets/pod/collections/7/revisions/v26/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v26/master/master_print.png
v25
v25 inactive items 3 panels 5

v25

Reason: manual_snapshot / Created: 2026-06-12 17:22:33
Master: /assets/pod/collections/7/revisions/v25/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v25/master/master_print.png
v24
v24 inactive items 3 panels 5

v24

Reason: manual_snapshot / Created: 2026-06-12 17:15:10
Master: /assets/pod/collections/7/revisions/v24/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v24/master/master_print.png
v23
v23 inactive items 3 panels 5

v23

Reason: manual_snapshot / Created: 2026-06-12 15:58:16
Master: /assets/pod/collections/7/revisions/v23/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v23/master/master_print.png
v22
v22 inactive items 3 panels 5

v22

Reason: manual_snapshot / Created: 2026-06-12 15:57:45
Master: /assets/pod/collections/7/revisions/v22/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v22/master/master_print.png
v21
v21 inactive items 3 panels 5

v21

Reason: manual_snapshot / Created: 2026-06-04 04:06:53
Master: /assets/pod/collections/7/revisions/v21/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v21/master/master_print.png
v20
v20 inactive items 3 panels 5

v20

Reason: manual_snapshot / Created: 2026-06-03 19:41:29
Master: /assets/pod/collections/7/revisions/v20/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v20/master/master_print.png
v19
v19 inactive items 3 panels 5

v19

Reason: manual_snapshot / Created: 2026-06-03 08:43:37
Master: /assets/pod/collections/7/revisions/v19/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v19/master/master_print.png
v18
v18 inactive items 3 panels 5

v18

Reason: manual_snapshot / Created: 2026-06-02 23:41:59
Master: /assets/pod/collections/7/revisions/v18/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v18/master/master_print.png
v17
v17 inactive items 3 panels 5

v17

Reason: manual_snapshot / Created: 2026-06-02 14:39:47
Master: /assets/pod/collections/7/revisions/v17/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v17/master/master_print.png
v16
v16 inactive items 3 panels 5

v16

Reason: manual_snapshot / Created: 2026-06-02 01:05:06
Master: /assets/pod/collections/7/revisions/v16/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v16/master/master_print.png
v15
v15 inactive items 3 panels 5

v15

Reason: manual_snapshot / Created: 2026-06-01 16:12:36
Master: /assets/pod/collections/7/revisions/v15/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v15/master/master_print.png
v14
v14 inactive items 3 panels 5

v14

Reason: manual_snapshot / Created: 2026-06-01 03:26:53
Master: /assets/pod/collections/7/revisions/v14/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v14/master/master_print.png
v13
v13 inactive items 3 panels 5

v13

Reason: manual_snapshot / Created: 2026-05-31 18:58:06
Master: /assets/pod/collections/7/revisions/v13/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v13/master/master_print.png
v12
v12 inactive items 3 panels 5

v12

Reason: manual_snapshot / Created: 2026-05-31 10:10:32
Master: /assets/pod/collections/7/revisions/v12/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v12/master/master_print.png
v11
v11 inactive items 3 panels 5

v11

Reason: manual_snapshot / Created: 2026-05-31 01:14:47
Master: /assets/pod/collections/7/revisions/v11/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v11/master/master_print.png
v10
v10 inactive items 3 panels 5

v10

Reason: manual_snapshot / Created: 2026-05-30 16:26:58
Master: /assets/pod/collections/7/revisions/v10/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v10/master/master_print.png
v9
v9 inactive items 3 panels 5

v9

Reason: manual_snapshot / Created: 2026-05-26 18:10:31
Master: /assets/pod/collections/7/revisions/v9/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v9/master/master_print.png
v8
v8 inactive items 3 panels 5

v8

Reason: manual_snapshot / Created: 2026-05-25 21:39:09
Master: /assets/pod/collections/7/revisions/v8/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v8/master/master_print.png
v7
v7 inactive items 3 panels 5

v7

Reason: manual_snapshot / Created: 2026-05-25 16:10:27
Master: /assets/pod/collections/7/revisions/v7/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v7/master/master_print.png
v6
v6 inactive items 3 panels 5

v6

Reason: manual_snapshot / Created: 2026-05-24 17:40:15
Master: /assets/pod/collections/7/revisions/v6/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v6/master/master_print.png
v5
v5 inactive items 3 panels 5

v5

Reason: manual_snapshot / Created: 2026-05-22 14:19:05
Master: /assets/pod/collections/7/revisions/v5/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v5/master/master_print.png
v4
v4 active items 3 panels 5 preflight pass / 100

acceptance snapshot 2026-05-19 18:06:39

Reason: acceptance_snapshot / Created: 2026-05-19 18:06:39
Master: /assets/pod/collections/7/revisions/v4/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v4/master/master_print.png
v3
v3 inactive items 3 panels 5 preflight pass / 100

acceptance snapshot 2026-05-19 18:03:04

Reason: acceptance_snapshot / Created: 2026-05-19 18:03:07
Master: /assets/pod/collections/7/revisions/v3/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v3/master/master_print.png
v2
v2 inactive items 3 panels 5

acceptance snapshot 2026-05-19 18:01:34

Reason: acceptance_snapshot / Created: 2026-05-19 18:01:39
Master: /assets/pod/collections/7/revisions/v2/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v2/master/master_print.png
v1
v1 inactive items 3 panels 5 preflight fail / 10

v1 initial snapshot

Reason: initial_snapshot / Created: 2026-05-19 18:01:20
Master: /assets/pod/collections/7/revisions/v1/master/master_artwork.png
Print: /assets/pod/collections/7/revisions/v1/master/master_print.png