{
  "tables": [
    {
      "name": "users",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "products",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "orders",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "order_items",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "StringTypes",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "NumberTypes",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "NumberTypesNoDefault",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "DatetimeTypes",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "ObjectTypes",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "gender_reference",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "user_define_data_types",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "table_with_comments",
      "schemaName": "dbo",
      "note": {
        "value": "This table stores information about various items."
      }
    },
    {
      "name": "table_with_composite_primary_and_unique_indexes",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "Authors",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "Books",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "AddressInfo",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "AddressInfo2",
      "schemaName": "dbo",
      "note": {
        "value": ""
      }
    },
    {
      "name": "TestDescriptionTable",
      "schemaName": "dbo",
      "note": {
        "value": "This is the custom comment name on table."
      }
    }
  ],
  "fields": {
    "dbo.users": [
      {
        "name": "user_id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "username",
        "type": {
          "type_name": "varchar(50)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "email",
        "type": {
          "type_name": "varchar(100)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "password_hash",
        "type": {
          "type_name": "varchar(255)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "first_name",
        "type": {
          "type_name": "varchar(50)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "last_name",
        "type": {
          "type_name": "varchar(50)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "full_name",
        "type": {
          "type_name": "varchar(100)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "full_name_lower",
        "type": {
          "type_name": "varchar(100)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "date_of_birth",
        "type": {
          "type_name": "date",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "created_at",
        "type": {
          "type_name": "datetime2",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "getdate()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "last_login",
        "type": {
          "type_name": "datetime2",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "is_active",
        "type": {
          "type_name": "bit",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "1"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.products": [
      {
        "name": "product_id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "name",
        "type": {
          "type_name": "varchar(100)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "description",
        "type": {
          "type_name": "text",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "price",
        "type": {
          "type_name": "decimal(10,2)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "stock_quantity",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0"
        },
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "category",
        "type": {
          "type_name": "varchar(50)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "created_at",
        "type": {
          "type_name": "datetime2",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "getdate()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "updated_at",
        "type": {
          "type_name": "datetime2",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "getdate()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "is_available",
        "type": {
          "type_name": "bit",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "1"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.orders": [
      {
        "name": "order_id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "user_id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "order_date",
        "type": {
          "type_name": "datetime2",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "getdate()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "total_amount",
        "type": {
          "type_name": "decimal(12,2)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "status",
        "type": {
          "type_name": "varchar(20)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "string",
          "value": "pending"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "shipping_address",
        "type": {
          "type_name": "text",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "billing_address",
        "type": {
          "type_name": "text",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.order_items": [
      {
        "name": "order_item_id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "order_id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "product_id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "quantity",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "unit_price",
        "type": {
          "type_name": "decimal(10,2)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.StringTypes": [
      {
        "name": "Id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "CharField",
        "type": {
          "type_name": "char(10)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "string",
          "value": "N/A"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "VarcharField",
        "type": {
          "type_name": "varchar(50)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "string",
          "value": "{\"default_key\": \"default_value\"}"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "VarcharMaxField",
        "type": {
          "type_name": "varchar(MAX)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "string",
          "value": "N/A"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "TextField",
        "type": {
          "type_name": "text",
          "schemaName": null
        },
        "dbdefault": {
          "type": "string",
          "value": "N/A"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "NCharField",
        "type": {
          "type_name": "nchar(10)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "N'N/A'"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "NVarCharField",
        "type": {
          "type_name": "nvarchar(50)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "N'N/A'"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "NVarCharMaxField",
        "type": {
          "type_name": "nvarchar(MAX)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "N'N/A'"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "NTextField",
        "type": {
          "type_name": "ntext",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "N'N/A'"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.NumberTypes": [
      {
        "name": "ID",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "TINYINTCol",
        "type": {
          "type_name": "tinyint(3)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "SMALLINTCol",
        "type": {
          "type_name": "smallint(5)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "INTCol",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "BIGINTCol",
        "type": {
          "type_name": "bigint(19)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "DECIMALCol",
        "type": {
          "type_name": "decimal(10,2)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0.00"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "NUMERICCol",
        "type": {
          "type_name": "numeric(10,2)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0.00"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "FLOATCol",
        "type": {
          "type_name": "float(53)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0.0"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "REALCol",
        "type": {
          "type_name": "real(24)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0.0"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "BITCol",
        "type": {
          "type_name": "bit",
          "schemaName": null
        },
        "dbdefault": {
          "type": "number",
          "value": "0"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.NumberTypesNoDefault": [
      {
        "name": "ID",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "TINYINTCol",
        "type": {
          "type_name": "tinyint(3)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "SMALLINTCol",
        "type": {
          "type_name": "smallint(5)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "INTCol",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "BIGINTCol",
        "type": {
          "type_name": "bigint(19)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "DECIMALCol",
        "type": {
          "type_name": "decimal(10,2)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "NUMERICCol",
        "type": {
          "type_name": "numeric(10,2)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "FLOATCol",
        "type": {
          "type_name": "float(53)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "REALCol",
        "type": {
          "type_name": "real(24)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "BITCol",
        "type": {
          "type_name": "bit",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.DatetimeTypes": [
      {
        "name": "ID",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "DATECol",
        "type": {
          "type_name": "date",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "getdate()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "TIMECol",
        "type": {
          "type_name": "time",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "CONVERT([time],getdate())"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "DATETIMECol",
        "type": {
          "type_name": "datetime",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "getdate()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "DATETIME2Col",
        "type": {
          "type_name": "datetime2",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "sysdatetime()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "SMALLDATETIMECol",
        "type": {
          "type_name": "smalldatetime",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "getdate()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "ROWVERSIONCol",
        "type": {
          "type_name": "timestamp",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "DATETIMEOFFSETCol",
        "type": {
          "type_name": "datetimeoffset",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "sysdatetimeoffset()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.ObjectTypes": [
      {
        "name": "Id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "XmlField",
        "type": {
          "type_name": "xml",
          "schemaName": null
        },
        "dbdefault": {
          "type": "string",
          "value": "<Books>\n    <Book>\n      <Title>The Great Gatsby</Title>\n      <Author>F. Scott Fitzgerald</Author>\n      <Year>1925</Year>\n      <Price>10.99</Price>\n      <Publisher>Scribner</Publisher>\n      <Location>New York</Location>\n      <Genre>Fiction</Genre>\n      <Subgenre>Classic</Subgenre>\n    </Book>\n    <Book>\n      <Title>1984</Title>\n      <Author>George Orwell</Author>\n      <Year>1949</Year>\n      <Price>8.99</Price>\n      <Publisher>Secker & Warburg</Publisher>\n      <Location>London</Location>\n      <Genre>Dystopian</Genre>\n      <Subgenre>Political Fiction</Subgenre>\n    </Book>\n  </Books>"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "JsonField",
        "type": {
          "type_name": "nvarchar(MAX)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "N'{\"defaultKey\": \"defaultValue\", \"status\": \"active\", \"count\": 0}'"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "BinaryField",
        "type": {
          "type_name": "binary(50)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "0x00"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "VarBinaryField",
        "type": {
          "type_name": "varbinary(50)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "0x00"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "VarBinaryMaxField",
        "type": {
          "type_name": "varbinary(MAX)",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "0x00"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "ImageField",
        "type": {
          "type_name": "image",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "0x00"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.gender_reference": [
      {
        "name": "value",
        "type": {
          "type_name": "nvarchar(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.user_define_data_types": [
      {
        "name": "id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": ""
        }
      },
      {
        "name": "name",
        "type": {
          "type_name": "nvarchar(50)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "gender",
        "type": {
          "type_name": "nvarchar(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "age_start",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "age_end",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "height",
        "type": {
          "type_name": "float(53)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "weight",
        "type": {
          "type_name": "float(53)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.table_with_comments": [
      {
        "name": "id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": true,
        "note": {
          "value": "Unique identifier for each item."
        }
      },
      {
        "name": "name",
        "type": {
          "type_name": "varchar(100)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": "Name of the item."
        }
      },
      {
        "name": "description",
        "type": {
          "type_name": "text",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": "Item's description"
        }
      },
      {
        "name": "created_at",
        "type": {
          "type_name": "datetime2",
          "schemaName": null
        },
        "dbdefault": {
          "type": "expression",
          "value": "getdate()"
        },
        "not_null": false,
        "increment": false,
        "note": {
          "value": "Timestamp when the item was created."
        }
      }
    ],
    "dbo.table_with_composite_primary_and_unique_indexes": [
      {
        "name": "col1",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "col2",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "col3",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "col4",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.Authors": [
      {
        "name": "AuthorID",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "NationalityID",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "AuthorName",
        "type": {
          "type_name": "nvarchar(100)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "BirthYear",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.Books": [
      {
        "name": "BookID",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "AuthorID",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "NationalityID",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "ISBN",
        "type": {
          "type_name": "nvarchar(20)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "Title",
        "type": {
          "type_name": "nvarchar(200)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.AddressInfo": [
      {
        "name": "AddressID",
        "type": {
          "type_name": "uniqueidentifier(16)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "AddressFormatID",
        "type": {
          "type_name": "uniqueidentifier(16)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.AddressInfo2": [
      {
        "name": "A1",
        "type": {
          "type_name": "uniqueidentifier(16)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "A2",
        "type": {
          "type_name": "uniqueidentifier(16)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "A3",
        "type": {
          "type_name": "uniqueidentifier(16)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      },
      {
        "name": "A4",
        "type": {
          "type_name": "uniqueidentifier(16)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": true,
        "increment": false,
        "note": {
          "value": ""
        }
      }
    ],
    "dbo.TestDescriptionTable": [
      {
        "name": "Id",
        "type": {
          "type_name": "int(10)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": "Primary key identifier."
        }
      },
      {
        "name": "Name",
        "type": {
          "type_name": "nvarchar(100)",
          "schemaName": null
        },
        "dbdefault": null,
        "not_null": false,
        "increment": false,
        "note": {
          "value": "Name of the entity."
        }
      }
    ]
  },
  "enums": [],
  "refs": [
    {
      "name": "FK_AuthorNationality",
      "endpoints": [
        {
          "tableName": "Books",
          "schemaName": "dbo",
          "fieldNames": [
            "AuthorID",
            "NationalityID"
          ],
          "relation": "*"
        },
        {
          "tableName": "Authors",
          "schemaName": "dbo",
          "fieldNames": [
            "AuthorID",
            "NationalityID"
          ],
          "relation": "1"
        }
      ],
      "onDelete": null,
      "onUpdate": null
    },
    {
      "name": "fk_product",
      "endpoints": [
        {
          "tableName": "order_items",
          "schemaName": "dbo",
          "fieldNames": [
            "product_id"
          ],
          "relation": "*"
        },
        {
          "tableName": "products",
          "schemaName": "dbo",
          "fieldNames": [
            "product_id"
          ],
          "relation": "1"
        }
      ],
      "onDelete": null,
      "onUpdate": "CASCADE"
    },
    {
      "name": "fk_order",
      "endpoints": [
        {
          "tableName": "order_items",
          "schemaName": "dbo",
          "fieldNames": [
            "order_id"
          ],
          "relation": "*"
        },
        {
          "tableName": "orders",
          "schemaName": "dbo",
          "fieldNames": [
            "order_id"
          ],
          "relation": "1"
        }
      ],
      "onDelete": "CASCADE",
      "onUpdate": "CASCADE"
    },
    {
      "name": "fk_user",
      "endpoints": [
        {
          "tableName": "orders",
          "schemaName": "dbo",
          "fieldNames": [
            "user_id"
          ],
          "relation": "*"
        },
        {
          "tableName": "users",
          "schemaName": "dbo",
          "fieldNames": [
            "user_id"
          ],
          "relation": "1"
        }
      ],
      "onDelete": "CASCADE",
      "onUpdate": "CASCADE"
    },
    {
      "name": "fk_gender",
      "endpoints": [
        {
          "tableName": "user_define_data_types",
          "schemaName": "dbo",
          "fieldNames": [
            "gender"
          ],
          "relation": "*"
        },
        {
          "tableName": "gender_reference",
          "schemaName": "dbo",
          "fieldNames": [
            "value"
          ],
          "relation": "1"
        }
      ],
      "onDelete": null,
      "onUpdate": null
    }
  ],
  "indexes": {
    "dbo.order_items": [
      {
        "name": "idx_order_items_order_product",
        "type": "NONCLUSTERED",
        "columns": [
          {
            "type": "column",
            "value": "order_id"
          },
          {
            "type": "column",
            "value": "product_id"
          }
        ],
        "pk": false,
        "unique": false
      }
    ],
    "dbo.orders": [
      {
        "name": "idx_orders_user_date",
        "type": "NONCLUSTERED",
        "columns": [
          {
            "type": "column",
            "value": "user_id"
          },
          {
            "type": "column",
            "value": "order_date"
          }
        ],
        "pk": false,
        "unique": false
      }
    ],
    "dbo.products": [
      {
        "name": "idx_products_category",
        "type": "NONCLUSTERED",
        "columns": [
          {
            "type": "column",
            "value": "category"
          }
        ],
        "pk": false,
        "unique": false
      }
    ],
    "dbo.users": [
      {
        "name": "idx_users_email",
        "type": "NONCLUSTERED",
        "columns": [
          {
            "type": "column",
            "value": "email"
          }
        ],
        "pk": false,
        "unique": false
      },
      {
        "name": "idx_users_full_name",
        "type": "NONCLUSTERED",
        "columns": [
          {
            "type": "column",
            "value": "full_name"
          }
        ],
        "pk": false,
        "unique": false
      },
      {
        "name": "idx_users_is_active_full_name",
        "type": "NONCLUSTERED",
        "columns": [
          {
            "type": "column",
            "value": "is_active"
          },
          {
            "type": "column",
            "value": "full_name_lower"
          }
        ],
        "pk": false,
        "unique": false
      }
    ]
  },
  "tableConstraints": {
    "dbo.Authors": {
      "AuthorID": {
        "checks": [],
        "pk": true
      },
      "NationalityID": {
        "checks": [],
        "pk": true
      },
      "AuthorName": {
        "checks": [],
        "unique": true
      },
      "BirthYear": {
        "checks": [],
        "unique": true
      }
    },
    "dbo.Books": {
      "BookID": {
        "checks": [],
        "pk": true
      },
      "AuthorID": {
        "checks": [],
        "pk": true
      },
      "ISBN": {
        "checks": [],
        "unique": true
      }
    },
    "dbo.DatetimeTypes": {
      "ID": {
        "checks": [],
        "pk": true
      }
    },
    "dbo.gender_reference": {
      "value": {
        "checks": [],
        "pk": true
      }
    },
    "dbo.NumberTypes": {
      "ID": {
        "checks": [],
        "pk": true
      }
    },
    "dbo.NumberTypesNoDefault": {
      "ID": {
        "checks": [],
        "pk": true
      }
    },
    "dbo.ObjectTypes": {
      "Id": {
        "checks": [],
        "pk": true
      }
    },
    "dbo.order_items": {
      "order_item_id": {
        "checks": [],
        "pk": true
      },
      "order_id": {
        "checks": [],
        "unique": true
      },
      "product_id": {
        "checks": [],
        "unique": true
      },
      "quantity": {
        "checks": [
          {
            "name": "chk_quantity_positive",
            "expression": "[quantity]>(0)"
          }
        ]
      },
      "unit_price": {
        "checks": [
          {
            "name": "chk_unit_price_positive",
            "expression": "[unit_price]>(0)"
          }
        ]
      }
    },
    "dbo.orders": {
      "order_id": {
        "checks": [],
        "pk": true
      },
      "total_amount": {
        "checks": [
          {
            "name": "chk_total_amount_positive",
            "expression": "[total_amount]>(0)"
          }
        ]
      },
      "status": {
        "checks": [
          {
            "name": "chk_status",
            "expression": "[status]='cancelled' OR [status]='delivered' OR [status]='shipped' OR [status]='processing' OR [status]='pending'"
          }
        ]
      }
    },
    "dbo.products": {
      "product_id": {
        "checks": [],
        "pk": true
      },
      "price": {
        "checks": [
          {
            "name": "chk_price_positive",
            "expression": "[price]>(0)"
          }
        ]
      },
      "stock_quantity": {
        "checks": [
          {
            "name": "chk_stock_non_negative",
            "expression": "[stock_quantity]>=(0)"
          }
        ]
      }
    },
    "dbo.StringTypes": {
      "Id": {
        "checks": [],
        "pk": true
      }
    },
    "dbo.table_with_comments": {
      "id": {
        "checks": [],
        "pk": true
      }
    },
    "dbo.table_with_composite_primary_and_unique_indexes": {
      "col1": {
        "checks": [],
        "pk": true
      },
      "col2": {
        "checks": [],
        "pk": true
      },
      "col3": {
        "checks": [],
        "unique": true
      },
      "col4": {
        "checks": [],
        "unique": true
      }
    },
    "dbo.user_define_data_types": {
      "id": {
        "checks": [],
        "pk": true
      },
      "gender": {
        "checks": [
          {
            "name": "chk_gender",
            "expression": "[gender]='Other' OR [gender]='Female' OR [gender]='Male'"
          }
        ]
      }
    },
    "dbo.users": {
      "user_id": {
        "checks": [],
        "pk": true
      },
      "email": {
        "checks": [
          {
            "name": "chk_email_format",
            "expression": "[email] like '%_@_%._%'"
          }
        ],
        "unique": true
      },
      "username": {
        "checks": [],
        "unique": true
      },
      "date_of_birth": {
        "checks": [
          {
            "name": "chk_age",
            "expression": "[date_of_birth]<=dateadd(year,(-13),getdate())"
          }
        ]
      }
    },
    "dbo.TestDescriptionTable": {
      "Name": {
        "checks": [
          {
            "name": "chk_name_len",
            "expression": "len([Name])>(6)"
          }
        ]
      }
    }
  },
  "checks": {
    "dbo.user_define_data_types": [
      {
        "name": "chk_age_range",
        "expression": "[age_start]<=[age_end]"
      }
    ],
    "dbo.AddressInfo": [
      {
        "name": "CK_Address_Valid",
        "expression": "([AddressID]='176029FA-D6D3-49E1-A48C-000000000002' OR [AddressID]='176029FA-D6D3-49E1-A48C-000000000001') AND ([AddressFormatID]='176029FA-D6D3-49E1-A48C-000000000002' OR [AddressFormatID]='176029FA-D6D3-49E1-A48C-000000000001')"
      }
    ],
    "dbo.AddressInfo2": [
      {
        "name": "CK_Address_Valid2",
        "expression": "([A1]='333' OR [A1]='2222' OR [A1]='1111') AND ([A2]='2222' OR [A2]='1111') AND ([A3]='1111' OR [A3]='2222') AND ([A4]='3333' OR [A4]='2222')"
      }
    ]
  }
}