`name` varchar(100) default NULL, # user name
`team_id` int(11) NOT NULL, # team id
`role` int(11) default 4, # user role ("manager", "co-manager", "client", or "user")
+ `role_id` int(11) default NULL, # future replacement of role
`client_id` int(11) default NULL, # client id for "client" user role
`rate` float(6,2) NOT NULL default '0.00', # default hourly rate
`email` varchar(100) default NULL, # user email
# Create an index that guarantees unique active and inactive role ranks in each group.
create unique index role_idx on tt_roles(team_id, rank, status);
+
+# Insert site-wide roles - site administrator and top manager.
+INSERT INTO `tt_roles` (`team_id`, `name`, `rank`, `rights`) VALUES (0, 'Site administrator', 1024, 'administer_site');
+INSERT INTO `tt_roles` (`team_id`, `name`, `rank`, `rights`) VALUES (0, 'Top manager', 512, 'data_entry,view_own_data,manage_own_settings,view_users,on_behalf_data_entry,view_data,override_punch_mode,swap_roles,approve_timesheets,manage_users,manage_projects,manage_tasks,manage_custom_fields,manage_clients,manage_invoices,manage_features,manage_basic_settings,manage_advanced_settings,manage_roles,export_data,manage_subgroups');
+# TODO: move this code above, create roles before creating admin account and assign admin account its role.
+
+#
+# Structure for table tt_site_config. This table stores configuration data
+# for Time Tracker site as a whole.
+# For example, database version, code version, site language, etc.
+#
+CREATE TABLE `tt_site_config` (
+ `param_name` varchar(32) NOT NULL, # parameter name
+ `param_value` text default NULL, # parameter value
+ `created` datetime default NULL, # creation time
+ `updated` datetime default NULL, # modification time
+ PRIMARY KEY (`param_name`)
+);
+
+INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.17.35', now()); # TODO: change when structure changes.