DataObjects/core.sql
[Pman.Core] / DataObjects / core.sql
1
2 CREATE TABLE `Companies` (
3   `code` varchar(32)  NOT NULL,
4   `name` varchar(128)  default NULL,
5   `remarks` text ,
6   `owner_id` int(11) NOT NULL,
7   `address` text ,
8   `tel` varchar(32)  default NULL,
9   `fax` varchar(32)  default NULL,
10   `email` varchar(128)  default NULL,
11   `id` int(11) NOT NULL auto_increment,
12   `isOwner` int(11) default NULL,
13   PRIMARY KEY   (`id`)
14   
15 ) ;
16 ALTER TABLE `Company_Name` ADD INDEX name_lookup (`name`);
17
18
19 alter table Companies change column isOwner isOwner int(11);
20 ALTER TABLE Companies ADD COLUMN logo_id INT(11)  NOT NULL;
21 ALTER TABLE Companies  ADD COLUMN background_color varchar(8)  NOT NULL;
22 ALTER TABLE Companies  ADD COLUMN comptype varchar(8)  NOT NULL;
23
24
25 ALTER TABLE `Companies` ADD COLUMN `url` varchar(254)  NOT NULL;
26 ALTER TABLE `Companies` ADD COLUMN `main_office_id` int(11)  NOT NULL;
27
28
29 ALTER TABLE `Companies` ADD COLUMN `created_by` int(11)  NOT NULL;
30 ALTER TABLE `Companies` ADD COLUMN `created_dt` datetime  NOT NULL;
31 ALTER TABLE `Companies` ADD COLUMN `updated_by` int(11)  NOT NULL;
32 ALTER TABLE `Companies` ADD COLUMN `updated_dt` datetime  NOT NULL;
33
34 ALTER TABLE `Companies` ADD COLUMN   `passwd` varchar(64) NOT NULL;
35
36
37 ALTER TABLE Companies 
38         ADD COLUMN dispatch_port varchar(255) NOT NULL DEFAULT '',
39         ADD COLUMN province varchar(255) NOT NULL DEFAULT '',
40         ADD COLUMN country varchar(4) NOT NULL DEFAULT '';
41
42  
43 UPDATE Companies set comptype='OWNER' where isOwner=1;
44
45 #// core comapy types - use core enums (Company Type)
46 DROP TABLE core_company_type;
47
48 CREATE TABLE `Events` (
49   `id` int(11) NOT NULL auto_increment,
50   `person_name` varchar(128)  default NULL,
51   `event_when` datetime default NULL,
52   `action` varchar(32)  default NULL,
53   `ipaddr` varchar(16)  default NULL,
54   `on_id` int(11) default NULL,
55   `on_table` varchar(64)  default NULL,
56   `person_id` int(11) default NULL,
57   `remarks` text ,
58   PRIMARY KEY  (`id`)
59 ) ;
60
61
62 ALTER TABLE Events ALTER COLUMN EventID id INT(11) AUTO_INCREMENT NOT NULL;
63 ALTER TABLE Events ALTER COLUMN User person_name VARCHAR(128);
64 ALTER TABLE Events ADD COLUMN person_id INT(11);
65 ALTER TABLE Events ALTER COLUMN Date event_when DATETIME;
66 ALTER TABLE Events ALTER COLUMN Event action VARCHAR(32);
67 ALTER TABLE Events ALTER COLUMN Host ipaddr VARCHAR(16);
68 ALTER TABLE Events ALTER COLUMN ItemID on_id INT(11);
69 ALTER TABLE Events ALTER COLUMN Container on_table VARCHAR(64);
70 ALTER TABLE Events ADD COLUMN remarks INT(11);
71
72
73
74 CREATE TABLE `Group_Members` (
75   `group_id` int(11) default NULL,
76   `id` int(11) NOT NULL auto_increment,
77   `user_id` int(11) NOT NULL default '0',
78   PRIMARY KEY  (`id`)
79 );
80
81
82 CREATE TABLE `Group_Rights` (
83   `rightname` varchar(64)  NOT NULL,
84   `group_id` int(11) NOT NULL,
85   `AccessMask` varchar(10)  NOT NULL,
86   `id` int(11) NOT NULL auto_increment,
87   PRIMARY KEY  (`id`)
88 ) ;
89
90
91
92
93 CREATE TABLE `Groups` (
94   `id` int(11) NOT NULL auto_increment,
95   `name` varchar(64)  NOT NULL,
96   `type` int(11) default NULL,
97   `leader` int(11) NOT NULL default '0',
98   PRIMARY KEY   (`id`)
99 );
100
101
102
103 alter table Groups add column type int(11) default 0;
104 ALTER TABLE `Groups` ADD COLUMN `leader` int(11)  NOT NULL default 0;
105 ALTER TABLE Groups CHANGE COLUMN type type int(11) default 0;
106
107
108
109
110 CREATE TABLE `Office` (
111   `id` int(11) NOT NULL auto_increment,
112   `company_id` int(11) NOT NULL default '0',
113   `name` varchar(64)  NOT NULL,
114   `address` text  NOT NULL,
115   `phone` varchar(32)  NOT NULL,
116   `fax` varchar(32)  NOT NULL,
117   `email` varchar(128)  NOT NULL,
118   `role` varchar(32)  NOT NULL,
119   PRIMARY KEY  (`id`)
120 );
121
122 CREATE TABLE `Person` (
123   `id` int(11) NOT NULL auto_increment,
124   `office_id` int(11) default '0',
125   `name` varchar(128)  NOT NULL,
126   `phone` varchar(32)  NOT NULL,
127   `fax` varchar(32)  NOT NULL,
128   `email` varchar(128)  NOT NULL,
129   `company_id` int(11) default '0',
130   `role` varchar(32)  NOT NULL,
131   `active` int(11) default NULL,
132   `remarks` text NOT NULL,
133   `passwd` varchar(64) NOT NULL,
134   `owner_id` int(11) NOT NULL,
135   `lang` varchar(8) default 'en',
136   `no_reset_sent` int(11) default '0',
137   PRIMARY KEY  (`id`)
138 ) ;
139
140
141  
142 ALTER TABLE Person ADD COLUMN no_reset_sent INT(11) DEFAULT 0;
143 ALTER TABLE Person ADD COLUMN action_type VARCHAR(32) DEFAULT '';
144  ALTER TABLE Person ADD COLUMN project_id int(11) default 0;
145
146 ALTER TABLE Person ADD COLUMN action_type VARCHAR(32) default '';
147
148 ALTER TABLE Person ADD COLUMN deleted_by INT(11) NOT NULL default 0 ;
149 ALTER TABLE Person ADD COLUMN deleted_dt DATETIME;
150
151  alter table Person change column active active int(11) NOT NULL DEFAULT 1 ;
152
153
154 CREATE TABLE `Projects` (
155   `id` int(11) NOT NULL auto_increment,
156   `name` varchar(254)  NOT NULL,
157   `remarks` text  NOT NULL,
158   `owner_id` int(11) default NULL,
159   `code` varchar(32)  NOT NULL,
160   `active` int(11) default '1',
161   `type` varchar(1)  NOT NULL default 'P',
162   `client_id` int(11) NOT NULL default '0',
163   `team_id` int(11) NOT NULL default '0',
164   `file_location` varchar(254)    NOT NULL default '',
165   `open_date` date default NULL,
166   `open_by` int(11) NOT NULL default '0',
167   PRIMARY KEY  (`id`)
168   
169 ) ;
170 ALTER TABLE `Projects` ADD INDEX `plookup` (`code`);
171
172 alter table Projects add column active int(11) default 1;
173 alter table Projects add index plookup(code);
174
175 ALTER TABLE  Projects  ADD COLUMN `type` varchar(1)  NOT NULL DEFAULT 'P';
176  ALTER TABLE  Projects ADD COLUMN `client_id` int(11)  NOT NULL DEFAULT 0 ;
177  ALTER TABLE  Projects ADD COLUMN `team_id` int(11)  NOT NULL DEFAULT 0;
178  ALTER TABLE  Projects ADD COLUMN `file_location` varchar(254)  NOT NULL DEFAULT '';
179  ALTER TABLE  Projects ADD COLUMN `open_date` date  ;
180  ALTER TABLE  Projects ADD COLUMN `close_date` date  ;
181  ALTER TABLE  Projects ADD COLUMN `open_by` int(11)  NOT NULL DEFAULT 0;
182
183 ALTER TABLE `Projects` ADD COLUMN `countries` varchar(128)  NOT NULL;
184 ALTER TABLE `Projects`  ADD COLUMN `languages` varchar(128)  NOT NULL;
185
186 ALTER TABLE  Projects ADD COLUMN agency_id int(11)  NOT NULL DEFAULT 0 ;
187
188
189 #-- we duplicate office_id and company_id here...
190 #-- not sure if we should keep doing that in the new design...
191 #-- we should improve our links code to handle this..
192
193
194 CREATE TABLE `ProjectDirectory` (
195   `id` int(11) NOT NULL auto_increment,
196   `project_id` int(11) NOT NULL,
197   `person_id` int(11) NOT NULL,
198   `ispm` int(11) NOT NULL,
199   `role` varchar(16) NOT NULL,
200   PRIMARY KEY  (`id`)
201 ) ;
202  
203
204 CREATE TABLE   `Images` (
205   `id` int(11) NOT NULL auto_increment,
206   `filename` varchar(255) NOT NULL default '',
207   `ontable` varchar(32) NOT NULL default '',
208   `onid` int(11) NOT NULL default '0',
209   `mimetype` varchar(64) NOT NULL default '',
210   `width` int(11) NOT NULL default '0',
211   `height` int(11) NOT NULL default '0',
212   `filesize` int(11) NOT NULL default '0',
213   `displayorder` int(11) NOT NULL default '0',
214   `language` varchar(6) NOT NULL default 'en',
215   `parent_image_id` int(11) NOT NULL default '0',
216   PRIMARY KEY  (`id`)
217 );
218
219
220
221 ALTER TABLE Images    ADD COLUMN  `width` int(11) NOT NULL default '0';
222 ALTER TABLE Images    ADD COLUMN  `height` int(11) NOT NULL default '0';
223 ALTER TABLE Images    ADD COLUMN  `filesize` int(11) NOT NULL default '0';
224 ALTER TABLE Images    ADD COLUMN  `displayorder` int(11) NOT NULL default '0';
225 ALTER TABLE Images    ADD COLUMN  `language` varchar(6) NOT NULL default 'en';
226 ALTER TABLE Images    ADD COLUMN  `parent_image_id` int(11) NOT NULL default '0';
227
228
229
230 ALTER TABLE `Images` ADD INDEX `lookup`(`ontable`, `onid`);
231
232 ALTER TABLE  `Images` ADD COLUMN `created` datetime  NOT NULL;
233 ALTER TABLE  `Images` ADD COLUMN `imgtype` VARCHAR(32) DEFAULT '' NOT NULL;
234 ALTER TABLE  `Images` ADD COLUMN `linkurl` VARCHAR(254) DEFAULT '' NOT NULL;
235 ALTER TABLE  `Images` ADD COLUMN `descript` TEXT DEFAULT '' NOT NULL;
236 ALTER TABLE  `Images` ADD COLUMN `title` VARCHAR(128) DEFAULT '' NOT NULL;
237  
238 #// old core image type - merged into enum.
239 DROP TABLE core_image_type;
240
241
242 CREATE TABLE  `i18n` (
243   `id` int(11)  NOT NULL AUTO_INCREMENT,
244   `ltype` varchar(1)  NOT NULL,
245   `lkey` varchar(8)  NOT NULL,
246   `inlang` varchar(8)  NOT NULL,
247   `lval` varchar(64)  NOT NULL,
248   PRIMARY KEY (`id`)
249   
250 );
251 ALTER TABLE i18n ADD INDEX `lookup` (`ltype`, `lkey`, `inlang`);
252
253                         
254         
255     
256 CREATE TABLE  core_locking (
257   `int` int(11)  NOT NULL AUTO_INCREMENT,
258   `on_table` varchar(64)  NOT NULL,
259   `on_id` int(11)  NOT NULL,
260   `person_id` int(11)  NOT NULL,
261   `created` datetime  NOT NULL,
262   PRIMARY KEY (`int`)
263 );
264 alter table  core_locking ADD  INDEX `lookup`(`on_table`, `on_id`, `person_id`, `created`);
265
266
267 # -- a generic enumeraction
268
269 CREATE TABLE   `core_enum` (
270   `id` int(11)  NOT NULL AUTO_INCREMENT,
271   `etype` varchar(32)  NOT NULL,
272   `name` varchar(255)  NOT NULL,
273   `active` int(2)  NOT NULL DEFAULT 1,
274   `seqid` int(11)  NOT NULL DEFAULT 0,
275   PRIMARY KEY (`id`),
276   INDEX `lookup`(`seqid`, `active`, `name`, `etype`)
277 )
278 ENGINE = MyISAM;
279
280
281
282
283 CREATE TABLE  `translations` (
284   `id` int(11)  NOT NULL AUTO_INCREMENT,
285   `module` varchar(64)  NOT NULL,
286   tfile varchar(128) NOT NULL,
287   tlang varchar(8)  NOT NULL,
288   tkey varchar(32)  NOT NULL,
289   tval longtext  NOT NULL,
290   PRIMARY KEY (`id`)
291 );
292
293 ALTER TABLE translations ADD INDEX qlookup (module, tfile, tlang, tkey);
294
295
296 # - used to trigger emails about changes to items being watched.
297
298 CREATE TABLE `core_watch` (
299   `id` int(11)  NOT NULL AUTO_INCREMENT,
300   `ontable` varchar(128) NOT NULL,
301   `onid` int(11) NOT NULL,
302   `person_id` int(11) NOT NULL,
303   `event` varchar(128) NOT NULL,
304   `medium` varchar(128) NOT NULL,
305   `active` int(11) NOT NULL DEFAULT '1',
306   PRIMARY KEY (id)
307 ) ;
308 ALTER TABLE core_watch ADD INDEX qlookup (`ontable`,`onid`,`user_id`,`event`,`medium`);
309
310 CREATE TABLE  core_notify  (
311   `id` int(11)  NOT NULL AUTO_INCREMENT,
312   `act_when` DATETIME NOT NULL,
313   `onid` int(11)  NOT NULL DEFAULT 0,
314   `ontable` varchar(128)  NOT NULL DEFAULT '',
315   `person_id` int(11)  NOT NULL DEFAULT 0,
316   `msgid` varchar(128)  NOT NULL  DEFAULT '',
317   `sent` DATETIME  NOT NULL,
318   `bounced` int(4)  NOT NULL DEFAULT 0,
319   PRIMARY KEY (`id`),
320   INDEX `lookup`(`act_when`, `msgid`)
321 );
322 ALTER TABLE core_notify CHANGE COLUMN bounced event_id INT(11) DEFAULT 0;
323
324
325 ALTER TABLE core_notify CHANGE COLUMN bounced event_id INT(11) NOT NULL DEFAULT 0;
326  
327
328 # - used by email / tracker to handle alises - we have to be carefull adding to this table...
329
330 CREATE TABLE `core_person_alias` (
331   `id` int(11)  NOT NULL AUTO_INCREMENT,
332   `person_id` varchar(128) DEFAULT NULL,
333   `alias` varchar(254) NOT NULL,
334   PRIMARY KEY (`id`)
335 ) ;
336 ALTER TABLE core_watch ADD INDEX qlookup (`alias`);