add -t flag to bulk void for payment type, RT#73413
[freeside.git] / rt / etc / schema.SQLite
index ce75ccc..c50e5b1 100644 (file)
@@ -3,15 +3,15 @@
 CREATE TABLE Attachments (
   id INTEGER PRIMARY KEY  ,
   TransactionId INTEGER  ,
-  Parent integer NULL  ,
-  MessageId varchar(160) NULL  ,
-  Subject varchar(255) NULL  ,
-  Filename varchar(255) NULL  ,
-  ContentType varchar(80) NULL  ,
-  ContentEncoding varchar(80) NULL  ,
-  Content LONGTEXT NULL  ,
-  Headers LONGTEXT NULL  ,
-  Creator integer NULL  ,
+  Parent integer NULL DEFAULT 0 ,
+  MessageId varchar(160) collate NOCASE NULL  ,
+  Subject varchar(255) collate NOCASE NULL  ,
+  Filename varchar(255) collate NOCASE NULL  ,
+  ContentType varchar(80) collate NOCASE NULL  ,
+  ContentEncoding varchar(80) collate NOCASE NULL  ,
+  Content LONGTEXT collate NOCASE NULL  ,
+  Headers LONGTEXT collate NOCASE NULL  ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL 
   
 ) ;
@@ -24,16 +24,18 @@ CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
 --- {{{ Queues
 CREATE TABLE Queues (
   id INTEGER PRIMARY KEY  ,
-  Name varchar(200) NOT NULL  ,
-  Description varchar(255) NULL  ,
-  CorrespondAddress varchar(120) NULL  ,
-  CommentAddress varchar(120) NULL  ,
-  InitialPriority integer NULL  ,
-  FinalPriority integer NULL  ,
-  DefaultDueIn integer NULL  ,
-  Creator integer NULL  ,
+  Name varchar(200) collate NOCASE NOT NULL  ,
+  Description varchar(255) collate NOCASE NULL  ,
+  CorrespondAddress varchar(120) collate NOCASE NULL  ,
+  CommentAddress varchar(120) collate NOCASE NULL  ,
+  Lifecycle varchar(32) collate NOCASE NULL  ,
+  SubjectTag varchar(120) collate NOCASE NULL  ,
+  InitialPriority integer NULL DEFAULT 0 ,
+  FinalPriority integer NULL DEFAULT 0 ,
+  DefaultDueIn integer NULL DEFAULT 0 ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  ,
-  LastUpdatedBy integer NULL  ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
   LastUpdated DATETIME NULL  ,
   Disabled int2 NOT NULL DEFAULT 0 
  
@@ -46,14 +48,14 @@ CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
 
 CREATE TABLE Links (
   id INTEGER PRIMARY KEY  ,
-  Base varchar(240) NULL  ,
-  Target varchar(240) NULL  ,
-  Type varchar(20) NOT NULL  ,
-  LocalTarget integer NULL  ,
-  LocalBase integer NULL  ,
-  LastUpdatedBy integer NULL  ,
+  Base varchar(240) collate NOCASE NULL  ,
+  Target varchar(240) collate NOCASE NULL  ,
+  Type varchar(20) collate NOCASE NOT NULL  ,
+  LocalTarget integer NULL DEFAULT 0 ,
+  LocalBase integer NULL DEFAULT 0 ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
   LastUpdated DATETIME NULL  ,
-  Creator integer NULL  ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  
   
 ) ;
@@ -66,7 +68,7 @@ CREATE INDEX Links4 ON Links(Type,LocalBase);
 
 CREATE TABLE Principals (
         id INTEGER PRIMARY KEY,
-        PrincipalType VARCHAR(16) not null,
+        PrincipalType VARCHAR(16) collate NOCASE not null,
         ObjectId integer,
         Disabled int2 NOT NULL DEFAULT 0 
         
@@ -78,15 +80,21 @@ CREATE TABLE Principals (
 
 CREATE TABLE Groups (
   id INTEGER ,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  Domain varchar(64),
-  Type varchar(64),
-  Instance integer
+  Name varchar(200) collate NOCASE NULL  ,
+  Description varchar(255) collate NOCASE NULL  ,
+  Domain varchar(64) collate NOCASE,
+  Type varchar(64) collate NOCASE,
+  Instance integer,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL
   
 ) ;
 
-CREATE UNIQUE INDEX Groups1 ON Groups (Name,Domain,Type,Instance) ;
+CREATE INDEX Groups1 ON Groups (Domain,Type,Instance);
+CREATE INDEX Groups2 ON Groups (Domain,Name,Instance);
+CREATE INDEX Groups3 ON Groups (Instance);
 
 --- }}}
 
@@ -94,15 +102,15 @@ CREATE UNIQUE INDEX Groups1 ON Groups (Name,Domain,Type,Instance) ;
 
 CREATE TABLE ScripConditions (
   id INTEGER PRIMARY KEY  ,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  ExecModule varchar(60) NULL  ,
-  Argument varchar(255) NULL  ,
-  ApplicableTransTypes varchar(60) NULL  ,
+  Name varchar(200) collate NOCASE NULL  ,
+  Description varchar(255) collate NOCASE NULL  ,
+  ExecModule varchar(60) collate NOCASE NULL  ,
+  Argument varchar(255) collate NOCASE NULL  ,
+  ApplicableTransTypes varchar(60) collate NOCASE NULL  ,
 
-  Creator integer NULL  ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  ,
-  LastUpdatedBy integer NULL  ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
   LastUpdated DATETIME NULL  
   
 ) ;
@@ -112,19 +120,19 @@ CREATE TABLE ScripConditions (
 --- {{{ Transactions
 CREATE TABLE Transactions (
   id INTEGER PRIMARY KEY  ,
-  ObjectType varchar(255) NULL  ,
-  ObjectId integer NULL  ,
-  TimeTaken integer NULL  ,
-  Type varchar(20) NULL  ,
-  Field varchar(40) NULL  ,
-  OldValue varchar(255) NULL  ,
-  NewValue varchar(255) NULL  ,
-  ReferenceType varchar(255) NULL  ,
+  ObjectType varchar(255) collate NOCASE NULL  ,
+  ObjectId integer NULL DEFAULT 0 ,
+  TimeTaken integer NULL DEFAULT 0 ,
+  Type varchar(20) collate NOCASE NULL  ,
+  Field varchar(40) collate NOCASE NULL  ,
+  OldValue varchar(255) collate NOCASE NULL  ,
+  NewValue varchar(255) collate NOCASE NULL  ,
+  ReferenceType varchar(255) collate NOCASE NULL  ,
   OldReference integer NULL  ,
   NewReference integer NULL  ,
-  Data varchar(255) NULL  ,
+  Data varchar(255) collate NOCASE NULL  ,
 
-  Creator integer NULL  ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  
   
 ) ;
@@ -136,37 +144,51 @@ CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
 
 CREATE TABLE Scrips (
   id INTEGER PRIMARY KEY  ,
-  Description varchar(255),
-  ScripCondition integer NULL  ,
-  ScripAction integer NULL  ,
-  ConditionRules text NULL  ,
-  ActionRules text NULL  ,
-  CustomIsApplicableCode text NULL  ,
-  CustomPrepareCode text NULL  ,
-  CustomCommitCode text NULL  ,
-  Stage varchar(32) NULL  ,
-  Queue integer NULL  ,
-  Template integer NULL  ,
-  Creator integer NULL  ,
+  Description varchar(255) collate NOCASE,
+  ScripCondition integer NULL DEFAULT 0 ,
+  ScripAction integer NULL DEFAULT 0 ,
+  CustomIsApplicableCode text collate NOCASE NULL  ,
+  CustomPrepareCode text collate NOCASE NULL  ,
+  CustomCommitCode text collate NOCASE NULL  ,
+  Disabled int2 NOT NULL DEFAULT 0 ,
+  Template varchar(200) collate NOCASE NOT NULL ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  ,
-  LastUpdatedBy integer NULL  ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
   LastUpdated DATETIME NULL  
   
 ) ;
 
 --- }}}
 
+CREATE TABLE ObjectScrips (
+  id INTEGER NOT NULL  ,
+  Scrip int NOT NULL  ,
+  Stage varchar(32) collate NOCASE NOT NULL DEFAULT 'TransactionCreate' ,
+  ObjectId integer NOT NULL,
+  SortOrder integer NOT NULL DEFAULT 0  ,
+
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL  ,
+  PRIMARY KEY (id)
+);
+CREATE UNIQUE INDEX ObjectScrips1 ON ObjectScrips (ObjectId, Scrip);
+
 --- {{{ ACL
 CREATE TABLE ACL (
   id INTEGER PRIMARY KEY  ,
-  PrincipalType varchar(25) NOT NULL,
+  PrincipalType varchar(25) collate NOCASE NOT NULL,
 
-  PrincipalId INTEGER,
-  RightName varchar(25) NOT NULL  ,
-  ObjectType varchar(25) NOT NULL  ,
+  PrincipalId INTEGER DEFAULT 0,
+  RightName varchar(25) collate NOCASE NOT NULL  ,
+  ObjectType varchar(25) collate NOCASE NOT NULL  ,
   ObjectId INTEGER default 0,
-  DelegatedBy integer NOT NULL default 0, 
-  DelegatedFrom integer NOT NULL default 0
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL
   
 ) ;
 
@@ -177,11 +199,17 @@ CREATE TABLE ACL (
 
 CREATE TABLE GroupMembers (
   id INTEGER PRIMARY KEY  ,
-  GroupId integer NULL,
-  MemberId integer NULL
+  GroupId integer NULL DEFAULT 0,
+  MemberId integer NULL DEFAULT 0,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL
   
 ) ;
 
+CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers(GroupId, MemberId);
+
 --- }}}
 
 --- {{{ CachedGroupMembers
@@ -201,53 +229,57 @@ create table CachedGroupMembers (
         
 ) ;
 
+CREATE INDEX CachedGroupMembers1 ON CachedGroupMembers (GroupId, MemberId, Disabled);
+CREATE INDEX CachedGroupMembers2 ON CachedGroupMembers (MemberId, GroupId, Disabled);
+CREATE INDEX CachedGroupMembers3 ON CachedGroupMembers (MemberId, ImmediateParentId);
+
 --- }}}
 
 --- {{{ Users
 
 CREATE TABLE Users (
   id INTEGER ,
-  Name varchar(200) NOT NULL  ,
-  Password varchar(40) NULL  ,
+  Name varchar(200) collate NOCASE NOT NULL  ,
+  Password varchar(256) collate NOCASE NULL  ,
+  AuthToken varchar(16) collate NOCASE NULL  ,
   Comments blob NULL  ,
   Signature blob NULL  ,
-  EmailAddress varchar(120) NULL  ,
+  EmailAddress varchar(120) collate NOCASE NULL  ,
   FreeformContactInfo blob NULL  ,
-  Organization varchar(200) NULL  ,
-  RealName varchar(120) NULL  ,
-  NickName varchar(16) NULL  ,
-  Lang varchar(16) NULL  ,
-  EmailEncoding varchar(16) NULL  ,
-  WebEncoding varchar(16) NULL  ,
-  ExternalContactInfoId varchar(100) NULL  ,
-  ContactInfoSystem varchar(30) NULL  ,
-  ExternalAuthId varchar(100) NULL  ,
-  AuthSystem varchar(30) NULL  ,
-  Gecos varchar(16) NULL  ,
-  HomePhone varchar(30) NULL  ,
-  WorkPhone varchar(30) NULL  ,
-  MobilePhone varchar(30) NULL  ,
-  PagerPhone varchar(30) NULL  ,
-  Address1 varchar(200) NULL  ,
-  Address2 varchar(200) NULL  ,
-  City varchar(100) NULL  ,
-  State varchar(100) NULL  ,
-  Zip varchar(16) NULL  ,
-  Country varchar(50) NULL  ,
+  Organization varchar(200) collate NOCASE NULL  ,
+  RealName varchar(120) collate NOCASE NULL  ,
+  NickName varchar(16) collate NOCASE NULL  ,
+  Lang varchar(16) collate NOCASE NULL  ,
+  EmailEncoding varchar(16) collate NOCASE NULL  ,
+  WebEncoding varchar(16) collate NOCASE NULL  ,
+  ExternalContactInfoId varchar(100) collate NOCASE NULL  ,
+  ContactInfoSystem varchar(30) collate NOCASE NULL  ,
+  ExternalAuthId varchar(100) collate NOCASE NULL  ,
+  AuthSystem varchar(30) collate NOCASE NULL  ,
+  Gecos varchar(16) collate NOCASE NULL  ,
+  HomePhone varchar(30) collate NOCASE NULL  ,
+  WorkPhone varchar(30) collate NOCASE NULL  ,
+  MobilePhone varchar(30) collate NOCASE NULL  ,
+  PagerPhone varchar(30) collate NOCASE NULL  ,
+  Address1 varchar(200) collate NOCASE NULL  ,
+  Address2 varchar(200) collate NOCASE NULL  ,
+  City varchar(100) collate NOCASE NULL  ,
+  State varchar(100) collate NOCASE NULL  ,
+  Zip varchar(16) collate NOCASE NULL  ,
+  Country varchar(50) collate NOCASE NULL  ,
   Timezone char(50) NULL  ,
-  PGPKey text NULL,
+  PGPKey text collate NOCASE NULL,
+  SMIMECertificate text collate NOCASE NULL,
 
-  Creator integer NULL  ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  ,
-  LastUpdatedBy integer NULL  ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
   LastUpdated DATETIME NULL  
   
 ) ;
 
 
 CREATE UNIQUE INDEX Users1 ON Users (Name) ;
-CREATE INDEX Users2 ON Users (Name);
-CREATE INDEX Users3 ON Users (id, EmailAddress);
 CREATE INDEX Users4 ON Users (EmailAddress);
 
 
@@ -257,20 +289,21 @@ CREATE INDEX Users4 ON Users (EmailAddress);
 
 CREATE TABLE Tickets (
   id INTEGER PRIMARY KEY  ,
-  EffectiveId integer NULL  ,
-  Queue integer NULL  ,
-  Type varchar(16) NULL  ,
-  IssueStatement integer NULL  ,
-  Resolution integer NULL  ,
-  Owner integer NULL  ,
-  Subject varchar(200) NULL DEFAULT '[no subject]' ,
-  InitialPriority integer NULL  ,
-  FinalPriority integer NULL  ,
-  Priority integer NULL  ,
-  TimeEstimated integer NULL  ,
-  TimeWorked integer NULL  ,
-  Status varchar(10) NULL  ,
-  TimeLeft integer NULL  ,
+  EffectiveId integer NULL DEFAULT 0 ,
+  IsMerged int2 NULL DEFAULT NULL,
+  Queue integer NULL DEFAULT 0 ,
+  Type varchar(16) collate NOCASE NULL  ,
+  IssueStatement integer NULL DEFAULT 0 ,
+  Resolution integer NULL DEFAULT 0 ,
+  Owner integer NULL DEFAULT 0 ,
+  Subject varchar(200) collate NOCASE NULL DEFAULT '[no subject]' ,
+  InitialPriority integer NULL DEFAULT 0 ,
+  FinalPriority integer NULL DEFAULt 0 ,
+  Priority integer NULL DEFAULT 0 ,
+  TimeEstimated integer NULL DEFAULT 0 ,
+  TimeWorked integer NULL DEFAULT 0 ,
+  Status varchar(64) collate NOCASE NULL  ,
+  TimeLeft integer NULL DEFAULT 0 ,
   Told DATETIME NULL  ,
   Starts DATETIME NULL  ,
   Started DATETIME NULL  ,
@@ -278,9 +311,9 @@ CREATE TABLE Tickets (
   Resolved DATETIME NULL  ,
 
 
-  LastUpdatedBy integer NULL  ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
   LastUpdated DATETIME NULL  ,
-  Creator integer NULL  ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  ,
   Disabled int2 NOT NULL DEFAULT 0
   
@@ -289,8 +322,6 @@ CREATE TABLE Tickets (
 CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
 CREATE INDEX Tickets2 ON Tickets (Owner) ;
 CREATE INDEX Tickets3 ON Tickets (EffectiveId) ;
-CREATE INDEX Tickets4 ON Tickets (id, Status) ;
-CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ;
 
 --- }}}
 
@@ -298,13 +329,13 @@ CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ;
 
 CREATE TABLE ScripActions (
   id INTEGER PRIMARY KEY  ,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  ExecModule varchar(60) NULL  ,
-  Argument varchar(255) NULL  ,
-  Creator integer NULL  ,
+  Name varchar(200) collate NOCASE NULL  ,
+  Description varchar(255) collate NOCASE NULL  ,
+  ExecModule varchar(60) collate NOCASE NULL  ,
+  Argument varchar(255) collate NOCASE NULL  ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  ,
-  LastUpdatedBy integer NULL  ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
   LastUpdated DATETIME NULL  
   
 ) ;
@@ -316,15 +347,13 @@ CREATE TABLE ScripActions (
 CREATE TABLE Templates (
   id INTEGER PRIMARY KEY  ,
   Queue integer NOT NULL DEFAULT 0 ,
-  Name varchar(200) NOT NULL  ,
-  Description varchar(255) NULL  ,
-  Type varchar(16) NULL  ,
-  Language varchar(16) NULL  ,
-  TranslationOf integer NULL  ,
+  Name varchar(200) collate NOCASE NOT NULL  ,
+  Description varchar(255) collate NOCASE NULL  ,
+  Type varchar(16) collate NOCASE NULL  ,
   Content blob NULL  ,
   LastUpdated DATETIME NULL  ,
-  LastUpdatedBy integer NULL  ,
-  Creator integer NULL  ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  
   
 ) ;
@@ -333,19 +362,18 @@ CREATE TABLE Templates (
 
 
 
-# {{{ ObjectCustomFieldValues 
 
 CREATE TABLE ObjectCustomFieldValues (
   id INTEGER NOT NULL  ,
   CustomField int NOT NULL  ,
-  ObjectType varchar(255) NOT NULL,        # Final target of the Object
-  ObjectId int NOT NULL  ,                 # New -- Replaces Ticket
+  ObjectType varchar(255) collate NOCASE NOT NULL,         # Final target of the Object
+  ObjectId int NOT NULL  ,                  # New -- Replaces Ticket
   SortOrder integer NOT NULL DEFAULT 0  ,
 
-  Content varchar(255) NULL  ,
-  LargeContent LONGTEXT NULL,              # New -- to hold 255+ strings
-  ContentType varchar(80) NULL,                    # New -- only text/* gets searched
-  ContentEncoding varchar(80) NULL  ,      # New -- for binary Content
+  Content varchar(255) collate NOCASE NULL  ,
+  LargeContent LONGTEXT collate NOCASE NULL,               # New -- to hold 255+ strings
+  ContentType varchar(80) collate NOCASE NULL,             # New -- only text/* gets searched
+  ContentEncoding varchar(80) collate NOCASE NULL  ,       # New -- for binary Content
 
   Creator integer NOT NULL DEFAULT 0  ,
   Created DATETIME NULL  ,
@@ -358,20 +386,20 @@ CREATE TABLE ObjectCustomFieldValues (
 CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content); 
 CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId); 
 
-# }}}
 
-# {{{ CustomFields
 
 CREATE TABLE CustomFields (
   id INTEGER NOT NULL  ,
-  Name varchar(200) NULL  ,
-  Type varchar(200) NULL  ,    # Changed -- 'Single' and 'Multiple' is moved out
-  MaxValues integer,           # New -- was 'Single'(1) and 'Multiple'(0)
-  Pattern varchar(65536) NULL  ,       # New -- Must validate against this
-  Repeated int2 NOT NULL DEFAULT 0 , # New -- repeated table entry
-  Description varchar(255) NULL  ,
+  Name varchar(200) collate NOCASE NULL  ,
+  Type varchar(200) collate NOCASE NULL  ,     # Changed -- 'Single' and 'Multiple' is moved out
+  RenderType varchar(64) collate NOCASE NULL  ,
+  MaxValues integer,            # New -- was 'Single'(1) and 'Multiple'(0)
+  Pattern varchar(65536) collate NOCASE NULL  ,        # New -- Must validate against this
+  BasedOn INTEGER NULL,
+  ValuesClass varchar(64) collate NOCASE NULL  ,
+  Description varchar(255) collate NOCASE NULL  ,
   SortOrder integer NOT NULL DEFAULT 0  ,
-  LookupType varchar(255) NOT NULL,
+  LookupType varchar(255) collate NOCASE NOT NULL,
 
   Creator integer NOT NULL DEFAULT 0  ,
   Created DATETIME NULL  ,
@@ -381,9 +409,7 @@ CREATE TABLE CustomFields (
   PRIMARY KEY (id)
 ) ;
 
-# }}}
 
-# {{{ ObjectCustomFields 
 
 CREATE TABLE ObjectCustomFields (
   id INTEGER NOT NULL  ,
@@ -398,16 +424,15 @@ CREATE TABLE ObjectCustomFields (
   PRIMARY KEY (id)
 ) ;
 
-# }}}
 
-# {{{ CustomFieldValues 
 
 CREATE TABLE CustomFieldValues (
   id INTEGER NOT NULL  ,
   CustomField int NOT NULL  ,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
+  Name varchar(200) collate NOCASE NULL  ,
+  Description varchar(255) collate NOCASE NULL  ,
   SortOrder integer NOT NULL DEFAULT 0  ,
+  Category varchar(255) collate NOCASE NULL  ,
 
   Creator integer NOT NULL DEFAULT 0  ,
   Created DATETIME NULL  ,
@@ -418,20 +443,19 @@ CREATE TABLE CustomFieldValues (
 
 CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
  
-# }}}
 
 --- {{{ Attributes
 CREATE TABLE Attributes (
   id INTEGER PRIMARY KEY  ,
-  Name varchar(255) NOT NULL  ,
-  Description varchar(255) NULL  ,
-  Content LONGTEXT NULL  ,
-  ContentType varchar(16),
-  ObjectType varchar(25) NOT NULL  ,
-  ObjectId INTEGER default 0,
-  Creator integer NULL  ,
+  Name varchar(255) collate NOCASE NOT NULL  ,
+  Description varchar(255) collate NOCASE NULL  ,
+  Content LONGTEXT collate NOCASE NULL  ,
+  ContentType varchar(16) collate NOCASE,
+  ObjectType varchar(25) collate NOCASE NOT NULL  ,
+  ObjectId INTEGER ,
+  Creator integer NULL DEFAULT 0 ,
   Created DATETIME NULL  ,
-  LastUpdatedBy integer NULL  ,
+  LastUpdatedBy integer NULL DEFAULT 0 ,
   LastUpdated DATETIME NULL  
  
 ) ;
@@ -440,3 +464,58 @@ CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
 
 --- }}}
 
+CREATE TABLE Classes (
+id INTEGER PRIMARY KEY,
+Name varchar(255) collate NOCASE NOT NULL DEFAULT '',
+Description varchar(255) collate NOCASE NOT NULL DEFAULT '',
+SortOrder integer NOT NULL DEFAULT 0,
+Disabled smallint NOT NULL DEFAULT 0,
+Creator integer NOT NULL DEFAULT 0,
+Created TIMESTAMP NULL,
+LastUpdatedBy integer NOT NULL DEFAULT 0,
+LastUpdated TIMESTAMP NULL,
+HotList smallint NOT NULL DEFAULT 0
+);
+
+CREATE TABLE Articles (
+id INTEGER PRIMARY KEY,
+Name varchar(255) collate NOCASE NOT NULL DEFAULT '',
+Summary varchar(255) collate NOCASE NOT NULL DEFAULT '',
+SortOrder integer NOT NULL DEFAULT 0,
+Class integer NOT NULL DEFAULT 0,
+Parent integer NOT NULL DEFAULT 0,
+URI varchar(255) collate NOCASE,
+Creator integer NOT NULL DEFAULT 0,
+Created TIMESTAMP NULL,
+LastUpdatedBy integer NOT NULL DEFAULT 0,
+LastUpdated TIMESTAMP NULL
+);
+
+
+CREATE TABLE Topics (
+id INTEGER PRIMARY KEY,
+Parent integer NOT NULL DEFAULT 0,
+Name varchar(255) collate NOCASE NOT NULL DEFAULT '',
+Description varchar(255) collate NOCASE NOT NULL DEFAULT '',
+ObjectType varchar(64) collate NOCASE NOT NULL DEFAULT '',
+ObjectId integer NOT NULL DEFAULT 0
+);
+
+
+CREATE TABLE ObjectTopics (
+id INTEGER PRIMARY KEY,
+Topic integer NOT NULL DEFAULT 0,
+ObjectType varchar(64) collate NOCASE NOT NULL DEFAULT '',
+ObjectId integer NOT NULL DEFAULT 0
+);
+
+CREATE TABLE ObjectClasses (
+id INTEGER PRIMARY KEY,
+Class integer NOT NULL DEFAULT 0,
+ObjectType varchar(64) collate NOCASE NOT NULL DEFAULT '',
+ObjectId integer NOT NULL DEFAULT 0,
+Creator integer NOT NULL DEFAULT 0,
+Created TIMESTAMP NULL,
+LastUpdatedBy integer NOT NULL DEFAULT 0,
+LastUpdated TIMESTAMP NULL
+);