{
    "id": "pdoc175-schema-audit",
    "title": "Паспорт складского типа: происхождение полей и реально сработавший триггер",
    "columns": [
        "Наблюдение",
        "Результат"
    ],
    "rows": [
        [
            "Позиция",
            "1 \/ Кабель O'Reilly \/ A-2"
        ],
        [
            "Происхождение полей",
            "id, title ← base_item; qty, zone_label ← stock_item"
        ],
        [
            "Атрибут класса",
            "policy: DEFAULT 'review'"
        ],
        [
            "Остаток",
            "3 → 7"
        ],
        [
            "Журнал",
            "1 запись: item_id=1, old_qty=3, new_qty=7"
        ],
        [
            "Внешние методы",
            "0 методов экземпляра; 0 методов класса; 0 файлов"
        ],
        [
            "Права",
            "Прочитано описание текущего DBA; права других пользователей не доказаны"
        ],
        [
            "Неизвестный вид схемы",
            "false + HY000; отсутствие методов отдельно даёт []"
        ],
        [
            "Файл",
            "schema-audit.json"
        ]
    ],
    "checks": {
        "actual_item": true,
        "audit_written": true,
        "inherited_fields": true,
        "local_fields": true,
        "class_policy": true,
        "parent_routes": true,
        "child_route": true,
        "methods_empty": true,
        "trigger_present": true,
        "privilege_shapes": true,
        "invalid_not_empty": true,
        "artifact_item": true,
        "owned_objects_removed": true
    },
    "observations": {
        "passport": {
            "item": {
                "id": 1,
                "title": "Кабель O'Reilly",
                "zone": "A-2",
                "qty": 7
            },
            "change": {
                "old_qty": 3,
                "new_qty": 7,
                "audit_rows": 1
            },
            "schema": {
                "direct_parent": "base_item",
                "child": "stock_item",
                "inherited": [
                    "id",
                    "title"
                ],
                "local": [
                    "qty",
                    "zone_label"
                ],
                "class_attribute": "policy",
                "methods": 0,
                "class_methods": 0,
                "method_files": 0,
                "trigger": "qty_change",
                "column_policy": "qty update is observed; application permissions are separate"
            },
            "limits": {
                "database_inheritance_is_php_inheritance": false,
                "metadata_changes_schema": false,
                "admin_privileges_prove_other_user_access": false
            }
        },
        "attribute_metadata": [
            {
                "ATTR_NAME": "id",
                "DOMAIN": "8",
                "SCALE": "0",
                "PRECISION": "10",
                "INDEXED": "0",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "0",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "1",
                "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                "SOURCE_CLASS": "dba.pdoc175_base_item_f035a40955",
                "IS_KEY": "0",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "title",
                "DOMAIN": "2",
                "SCALE": "0",
                "PRECISION": "80",
                "INDEXED": "0",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "0",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "2",
                "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                "SOURCE_CLASS": "dba.pdoc175_base_item_f035a40955",
                "IS_KEY": "0",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "qty",
                "DOMAIN": "8",
                "SCALE": "0",
                "PRECISION": "10",
                "INDEXED": "0",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "0",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "3",
                "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                "SOURCE_CLASS": "dba.pdoc175_stock_item_f7be78ee72",
                "IS_KEY": "0",
                "REMARKS": ""
            },
            {
                "ATTR_NAME": "zone_label",
                "DOMAIN": "2",
                "SCALE": "0",
                "PRECISION": "20",
                "INDEXED": "0",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "0",
                "DEFAULT": "NULL",
                "ATTR_ORDER": "4",
                "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                "SOURCE_CLASS": "dba.pdoc175_stock_item_f7be78ee72",
                "IS_KEY": "0",
                "REMARKS": ""
            }
        ],
        "class_attribute_metadata": [
            {
                "ATTR_NAME": "policy",
                "DOMAIN": "2",
                "SCALE": "0",
                "PRECISION": "20",
                "INDEXED": "0",
                "NON_NULL": "0",
                "SHARED": "0",
                "UNIQUE": "0",
                "DEFAULT": "'review'",
                "ATTR_ORDER": "1",
                "CLASS_NAME": "dba.pdoc175_base_item_f035a40955",
                "SOURCE_CLASS": "dba.pdoc175_base_item_f035a40955",
                "IS_KEY": "0",
                "REMARKS": ""
            }
        ],
        "hierarchy": {
            "all_parents": [
                {
                    "CLASS_NAME": "dba.pdoc175_base_item_f035a40955",
                    "TYPE": "2"
                }
            ],
            "direct_parents": [
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "SUPER_CLASS_NAME": "dba.pdoc175_base_item_f035a40955"
                }
            ],
            "children": [
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "TYPE": "2"
                }
            ]
        },
        "triggers": [
            {
                "NAME": "dba.pdoc175_qty_change_f6c06ba28a",
                "STATUS": "ACTIVE",
                "EVENT": "UPDATE",
                "TARGET_CLASS": "dba.pdoc175_stock_item_f7be78ee72",
                "TARGET_ATTR": "qty",
                "ACTION_TIME": "AFTER",
                "ACTION": "insert into [dba.pdoc175_qty_audit_ce239a048e] ([item_id], [old_qty], [new_qty]) values ([obj].[id], [old].[qty], [obj].[qty])",
                "PRIORITY": "0.000000",
                "CONDITION_TIME": "AFTER",
                "CONDITION": "[old].[qty]<>[obj].[qty]",
                "REMARKS": ""
            }
        ],
        "current_connection_privileges": {
            "table": [
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "PRIVILEGE": "SELECT",
                    "GRANTABLE": "YES"
                },
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "PRIVILEGE": "INSERT",
                    "GRANTABLE": "YES"
                },
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "PRIVILEGE": "UPDATE",
                    "GRANTABLE": "YES"
                },
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "PRIVILEGE": "DELETE",
                    "GRANTABLE": "YES"
                },
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "PRIVILEGE": "ALTER",
                    "GRANTABLE": "YES"
                },
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "PRIVILEGE": "INDEX",
                    "GRANTABLE": "YES"
                },
                {
                    "CLASS_NAME": "dba.pdoc175_stock_item_f7be78ee72",
                    "PRIVILEGE": "EXECUTE",
                    "GRANTABLE": "YES"
                }
            ],
            "qty": [
                {
                    "ATTR_NAME": "qty",
                    "PRIVILEGE": "SELECT",
                    "GRANTABLE": "YES"
                },
                {
                    "ATTR_NAME": "qty",
                    "PRIVILEGE": "INSERT",
                    "GRANTABLE": "YES"
                },
                {
                    "ATTR_NAME": "qty",
                    "PRIVILEGE": "UPDATE",
                    "GRANTABLE": "YES"
                },
                {
                    "ATTR_NAME": "qty",
                    "PRIVILEGE": "DELETE",
                    "GRANTABLE": "YES"
                },
                {
                    "ATTR_NAME": "qty",
                    "PRIVILEGE": "ALTER",
                    "GRANTABLE": "YES"
                },
                {
                    "ATTR_NAME": "qty",
                    "PRIVILEGE": "INDEX",
                    "GRANTABLE": "YES"
                },
                {
                    "ATTR_NAME": "qty",
                    "PRIVILEGE": "EXECUTE",
                    "GRANTABLE": "YES"
                }
            ]
        },
        "actual_audit_rows": [
            {
                "item_id": "1",
                "old_qty": "3",
                "new_qty": "7"
            }
        ],
        "external_methods": {
            "instance": [],
            "class": [],
            "files": []
        },
        "invalid_schema": {
            "exception": false,
            "sqlstate": "HY000",
            "driver_code": 4294957281,
            "warning": false,
            "message_present": true
        }
    },
    "runtime": {
        "php": "7.4.33",
        "extension": "1.0.0",
        "pdo": "7.4.33",
        "driver": "cubrid",
        "server_version": "11.3.5.1274",
        "client_version": "11.2.0",
        "database": "phpmanual175",
        "transport": "isolated_loopback_broker",
        "autocommit": true
    },
    "owned_objects": [
        {
            "type": "TABLE",
            "name": "pdoc175_base_item_f035a40955"
        },
        {
            "type": "TABLE",
            "name": "pdoc175_stock_item_f7be78ee72"
        },
        {
            "type": "TABLE",
            "name": "pdoc175_qty_audit_ce239a048e"
        },
        {
            "type": "TRIGGER",
            "name": "pdoc175_qty_change_f6c06ba28a"
        }
    ],
    "removed_objects": [
        {
            "type": "TRIGGER",
            "name": "pdoc175_qty_change_f6c06ba28a"
        },
        {
            "type": "TABLE",
            "name": "pdoc175_qty_audit_ce239a048e"
        },
        {
            "type": "TABLE",
            "name": "pdoc175_stock_item_f7be78ee72"
        },
        {
            "type": "TABLE",
            "name": "pdoc175_base_item_f035a40955"
        }
    ]
}
