Index: openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/sql/postgresql/Attic/project-manager-table-create.sql,v
diff -u -r1.12 -r1.13
--- openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql	12 Sep 2003 17:58:43 -0000	1.12
+++ openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql	15 Sep 2003 23:09:56 -0000	1.13
@@ -402,3 +402,111 @@
 comment on table pm_project_assignment is '
   Maps who is a part of what project, and in what capacity
 ';
+
+
+-- PROCESSES
+
+create sequence pm_process_seq;
+
+create table pm_process (
+        process_id                      integer
+                                        constraint pm_process_id_pk
+                                        primary key,
+        one_line                        varchar(200)
+                                        constraint pm_process_one_line_nn
+                                        not null,
+        description                     varchar(1000),
+        party_id                        integer
+                                        constraint pm_process_party_fk
+                                        references parties
+                                        constraint pm_process_party_nn
+                                        not null,
+        creation_date                   timestamptz
+);
+
+comment on table pm_process is '
+ Processes are a set of templates for tasks, so that people can 
+ create sets of tasks quickly. Their structure needs to match that of
+ tasks. The process holds the meta information, and is also an identifier
+ that is used by the user to select which process they''d like to copy or
+ use 
+';
+
+create sequence pm_process_task_seq;
+
+create table pm_process_task (
+        process_task_id                 integer
+                                        constraint pm_process_task_id_pk
+                                        primary key,
+        process_id                      integer
+                                        constraint pm_process_process_id_fk
+                                        references
+                                        pm_process
+                                        constraint pm_process_process_id_nn
+                                        not null,
+        one_line                        varchar(200)
+                                        constraint pm_process_task_one_line_nn
+                                        not null,
+        description                     varchar(4000),
+        -- dates are optional, because it may be computed in reference
+        -- to all other items, or simply not have a deadline
+        end_date                        timestamptz,
+        -- percent complete is always 0
+        estimated_hours_work            numeric,
+        -- PERT charts require minimum and maximum estimates
+        -- these are optionally used
+        estimated_hours_work_min        numeric,
+        estimated_hours_work_max        numeric
+);
+
+comment on table pm_process_task is '
+  A template for the tasks that will be created by the process
+';
+
+create sequence pm_process_task_dependency_seq;
+
+create table pm_process_task_dependency (
+        dependency_id                   integer
+                                        constraint pm_proc_task_dependcy_pk
+                                        primary key,
+        process_task_id                 integer
+                                        constraint pm_proc_task_proc_task_fk
+                                        references pm_process_task
+                                        on delete cascade,
+        parent_task_id                  integer
+                                        constraint pm_proc_task_parent_id_fk
+                                        references pm_process_task
+                                        on delete cascade,
+        dependency_type                 varchar
+                                        constraint pm_process_task_dep_type
+                                        references pm_task_dependency_types,
+        constraint pm_proc_task_depend_uq
+        unique (process_task_id, parent_task_id)
+);
+
+comment on table pm_process_task_dependency is '
+  Keeps track of dependencies. Used to create the dependencies in the
+  new tasks.
+';
+
+create table pm_process_task_assignment (
+        process_task_id         integer
+                                constraint pm_proc_task_assign_task_fk
+                                references pm_process_task(process_task_id)
+                                on delete cascade,
+        role_id                 integer
+                                constraint pm_task_assignment_role_fk
+                                references pm_roles,
+        party_id                integer
+                                constraint pm_task_assignment_party_fk 
+                                references parties(party_id)
+                                on delete cascade,
+        constraint pm_proc_task_assgn_uq
+        unique (process_task_id, role_id, party_id)
+);
+
+
+comment on table pm_process_task_assignment is '
+  Maps who is assigned to process tasks. These will be the default people
+  assigned to the new tasks
+';
