Basic issue management
[bpt/portal.git] / support.sig
CommitLineData
5a2812ca
AC
1signature SUPPORT =
2sig
3 datatype status =
4 NEW
5 | PENDING
6 | CLOSED
7
8 type category = { id : int, grp : int, name : string, descr : string }
9 type issue = { id : int, usr : int, cat : int, title : string, priv : bool, status : status, stamp : Init.C.timestamp }
10 type post = { id : int, usr : int, iss : int, body : string, stamp : Init.C.timestamp }
11 type subscription = { usr : int, cat : int }
12
13 val lookupCategory : int -> category
14 val listCategories : unit -> category list
15 val listCategoriesWithSubscriptions : int -> (bool * category) list
16 val addCategory : int * string * string -> int
17 val modCategory : category -> unit
18 val deleteCategory : int -> unit
19
20 val lookupIssue : int -> issue
21 val listIssues : unit -> issue list
1cb3df3f
AC
22 val listCategoryIssues : int -> issue list
23 val listOpenCategoryIssues : int * int -> issue list
24 val listOpenCategoryIssuesAdmin : int -> issue list
5a2812ca
AC
25 val addIssue : int * int * string * bool * status -> int
26 val modIssue : issue -> unit
27 val deleteIssue : int -> unit
28
29 val lookupPost : int -> post
30 val listPosts : int -> post list
31 val addPost : int * int * string -> int
32 val modPost : post -> unit
33 val deletePost : int -> unit
34
35 val subscribed : subscription -> bool
36 val subscribe : subscription -> unit
37 val unsubscribe : subscription -> unit
1cb3df3f
AC
38
39 val validTitle : string -> bool
5a2812ca 40end