Added plugin where users monthly quota can be set and tracked by users.
[timetracker.git] / mysql.sql
index 3e28325..1734852 100644 (file)
--- a/mysql.sql
+++ b/mysql.sql
@@ -19,7 +19,6 @@ CREATE TABLE `tt_teams` (
   `address` varchar(255) default NULL,                   # team address, used in invoices
   `currency` varchar(7) default NULL,                    # team currency symbol
   `decimal_mark` char(1) NOT NULL default '.',           # separator in decimals
-  `locktime` int(4) default '0',                         # lock interval in days
   `lang` varchar(10) NOT NULL default 'en',              # language
   `date_format` varchar(20) NOT NULL default '%Y-%m-%d', # date format
   `time_format` varchar(20) NOT NULL default '%H:%M',    # time format
@@ -27,6 +26,8 @@ CREATE TABLE `tt_teams` (
   `tracking_mode` smallint(2) NOT NULL DEFAULT '1',      # tracking mode ("projects" or "projects and tasks")
   `record_type` smallint(2) NOT NULL DEFAULT '0',        # time record type ("start and finish", "duration", or both)
   `plugins` varchar(255) default NULL,                   # a list of enabled plugins for team
+  `lock_spec` varchar(255) default NULL,                 # Cron specification for record locking,
+                                                         # for example: "0 10 * * 1" for "weekly on Mon at 10:00".
   `custom_logo` tinyint(4) default '0',                  # whether to use a custom logo or not
   `status` tinyint(4) default '1',                       # team status
   PRIMARY KEY (`id`)
@@ -68,7 +69,7 @@ CREATE TABLE `tt_projects` (
   `name` varchar(80) COLLATE utf8_bin NOT NULL, # project name
   `description` varchar(255) default NULL,      # project description
   `tasks` text default NULL,                    # comma-separated list of task ids associated with this project
-  `status` tinyint(4) default '1',                             # project status
+  `status` tinyint(4) default '1',              # project status
   PRIMARY KEY (`id`)
 );
 
@@ -112,7 +113,7 @@ create unique index bind_idx on tt_user_project_binds(user_id, project_id);
 # Structure for table tt_project_task_binds. This table maps projects to assigned tasks.
 #
 CREATE TABLE `tt_project_task_binds` (
-  `project_id` int(11) NOT NULL, # project id    
+  `project_id` int(11) NOT NULL, # project id
   `task_id` int(11) NOT NULL     # task id
 );
 
@@ -191,16 +192,16 @@ CREATE TABLE `tt_fav_reports` (
   `task_id` int(11) default NULL,                        # task id (if selected)
   `billable` tinyint(4) default NULL,                    # whether to include billable, not billable, or all records
   `invoice` tinyint(4) default NULL,                     # whether to include invoiced, not invoiced, or all records
-  `users` text default NULL,                             # Comma-separated list of user ids. Nothing here means "all" users. 
+  `users` text default NULL,                             # Comma-separated list of user ids. Nothing here means "all" users.
   `period` tinyint(4) default NULL,                      # selected period type for report
   `period_start` date default NULL,                      # period start
   `period_end` date default NULL,                        # period end
   `show_client` tinyint(4) NOT NULL default '0',         # whether to show client column
-  `show_invoice` tinyint(4) NOT NULL default '0',        # whether to show invoice column  
+  `show_invoice` tinyint(4) NOT NULL default '0',        # whether to show invoice column
   `show_project` tinyint(4) NOT NULL default '0',        # whether to show project column
   `show_start` tinyint(4) NOT NULL default '0',          # whether to show start field
   `show_duration` tinyint(4) NOT NULL default '0',       # whether to show duration field
-  `show_cost` tinyint(4) NOT NULL default '0',           # whether to show cost field  
+  `show_cost` tinyint(4) NOT NULL default '0',           # whether to show cost field
   `show_task` tinyint(4) NOT NULL default '0',           # whether to show task column
   `show_end` tinyint(4) NOT NULL default '0',            # whether to show end field
   `show_note` tinyint(4) NOT NULL default '0',           # whether to show note column
@@ -293,7 +294,7 @@ CREATE TABLE `tt_custom_fields` (
 #
 CREATE TABLE `tt_custom_field_options` (
   `id` int(11) NOT NULL auto_increment,    # option id
-  `field_id` int(11) NOT NULL,             # custom field id              
+  `field_id` int(11) NOT NULL,             # custom field id
   `value` varchar(32) NOT NULL default '', # option value
   PRIMARY KEY  (`id`)
 );
@@ -337,3 +338,15 @@ create index user_idx on tt_expense_items(user_id);
 create index client_idx on tt_expense_items(client_id);
 create index project_idx on tt_expense_items(project_id);
 create index invoice_idx on tt_expense_items(invoice_id);
+
+#
+# Structure for table tt_monthly_quota.
+# This table lists expense items.
+#
+
+CREATE TABLE `tt_monthly_quota` ( 
+  `year` SMALLINT UNSIGNED NOT NULL ,   # year we'setting monthly quota for
+  `month` TINYINT UNSIGNED NOT NULL ,   # month we're settng monthly quota for
+  `quota` SMALLINT UNSIGNED NOT NULL ,  # the monthly quota
+  PRIMARY KEY (`year`, `month`)
+);