-- Table: gobject
CREATE TABLE [gobject] (
    [gobject_id] int NOT NULL,
    [template_definition_id] int NOT NULL,
    [derived_from_gobject_id] int NOT NULL DEFAULT ((0)),
    [contained_by_gobject_id] int NOT NULL DEFAULT ((0)),
    [area_gobject_id] int NOT NULL DEFAULT ((0)),
    [hosted_by_gobject_id] int NOT NULL DEFAULT ((0)),
    [checked_out_by_user_guid] uniqueidentifier NULL,
    [default_symbol_gobject_id] int NOT NULL DEFAULT ((0)),
    [default_display_gobject_id] int NOT NULL DEFAULT ((0)),
    [checked_in_package_id] int NOT NULL DEFAULT ((0)),
    [checked_out_package_id] int NOT NULL DEFAULT ((0)),
    [deployed_package_id] int NOT NULL DEFAULT ((0)),
    [last_deployed_package_id] int NOT NULL DEFAULT ((0)),
    [tag_name] nvarchar(329) NOT NULL,
    [contained_name] nvarchar(32) NOT NULL DEFAULT (''),
    [identity_guid] uniqueidentifier NOT NULL DEFAULT (newid()),
    [configuration_guid] uniqueidentifier NOT NULL,
    [configuration_version] int NOT NULL,
    [deployed_version] int NOT NULL DEFAULT ((0)),
    [is_template] bit NOT NULL DEFAULT ((0)),
    [is_hidden] bit NOT NULL DEFAULT ((0)),
    [software_upgrade_needed] bit NOT NULL DEFAULT ((0)),
    [hosting_tree_level] smallint NOT NULL DEFAULT ((0)),
    [hierarchical_name] nvarchar(329) NOT NULL DEFAULT (''),
    [namespace_id] smallint NOT NULL DEFAULT ((1)),
    [deployment_pending_status] bit NOT NULL DEFAULT ((0)),
    CONSTRAINT [PK_gobject] PRIMARY KEY ([gobject_id], [namespace_id], [template_definition_id])
);
GO

ALTER TABLE [gobject] ADD FOREIGN KEY ([template_definition_id]) REFERENCES [template_definition] ([template_definition_id]);
GO

