Added Extended services + Item Order
[yaz-moved-to-github.git] / include / prt-exd.h
1 /*
2  * Copyright (c) 1995, Index Data.
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and
5  * its documentation, in whole or in part, for any purpose, is hereby granted,
6  * provided that:
7  *
8  * 1. This copyright and permission notice appear in all copies of the
9  * software and its documentation. Notices of copyright or attribution
10  * which appear at the beginning of any file must remain unchanged.
11  *
12  * 2. The names of Index Data or the individual authors may not be used to
13  * endorse or promote products derived from this software without specific
14  * prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
18  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19  * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
20  * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
21  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
22  * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24  * OF THIS SOFTWARE.
25  *
26  */
27
28 typedef struct Z_TaskPackage
29 {
30     Odr_oid *packageType;                 
31     char *packageName;                      /* OPTIONAL */
32     char *userId;                           /* OPTIONAL */
33     Z_IntUnit *retentionTime;               /* OPTIONAL */
34     Z_Permissions *permissions;             /* OPTIONAL */
35     char *description;                      /* OPTIONAL */
36     Odr_oct *targetReference;             
37     char *creationDateTime;    /* OPTIONAL */
38     int *taskStatus;                      
39 #define Z_TaskPackage_pending             0
40 #define Z_TaskPackage_active              1
41 #define Z_TaskPackage_complete            2
42 #define Z_TaskPackage_aborted             3
43     int num_packageDiagnostics;
44     Z_DiagRec **packageDiagnostics;         /* OPTIONAL */
45     Z_External *taskSpecificParameters;   
46 } Z_TaskPackage;
47
48 int z_TaskPackage(ODR o, Z_TaskPackage **p, int opt);
49
50 /* ----------------------- ITEM ORDER ------------------------- */
51
52 typedef struct Z_IOTargetPart
53 {
54     Z_External *itemRequest;                   /* OPTIONAL */
55     Z_External *statusOrErrorReport;
56     int *auxiliaryStatus;                      /* OPTIONAL */
57 #define Z_IOTargetPart_notReceived        1
58 #define Z_IOTargetPart_loanQueue          2
59 #define Z_IOTargetPart_forwarded          3
60 #define Z_IOTargetPart_unfilledCopyright  4
61 #define Z_IOTargetPart_filledCopyright    1
62 } Z_IOTargetPart;
63
64 typedef struct Z_IOResultSetItem
65 {
66     char *resultSetId;
67     int *item;
68 } Z_IOResultSetItem;
69
70 typedef struct Z_IOOriginPartNotToKeep
71 {
72     Z_IOResultSetItem *resultSetItem;          /* OPTIONAL */
73     Z_External *itemRequest;                   /* OPTIONAL */
74 } Z_IOOriginPartNotToKeep;
75
76 typedef struct Z_IOContact
77 {
78     char *name;                                /* OPTIONAL */
79     char *phone;                               /* OPTIONAL */
80     char *email;                               /* OPTIONAL */
81 } Z_IOContact;
82
83 typedef struct Z_IOCreditCardInfo
84 {
85     char *nameOnCard;
86     char *expirationDate;
87     char *cardNumber;
88 } Z_IOCreditCardInfo;
89
90 typedef struct Z_IOBilling
91 {
92     enum
93     {
94         Z_IOBilling_billInvoice,
95         Z_IOBilling_prepay,
96         Z_IOBilling_depositAccount,
97         Z_IOBilling_creditCard,
98         Z_IOBilling_cardInfoPreviouslySupplied,
99         Z_IOBilling_privateKnown,
100         Z_IOBilling_privateNotKnown
101     } which;
102     union
103     {
104         Odr_null *noinfo;
105         Z_IOCreditCardInfo *creditCard;
106         Z_External *privateNotKnown;
107     } paymentMethod;
108     char *customerReference;                        /* OPTIONAL */
109     char *customerPONumber;                         /* OPTIONAL */
110 } Z_IOBilling;
111
112 typedef struct Z_IOOriginPartToKeep
113 {
114     Z_External *supplDescription;              /* OPTIONAL */
115     Z_IOContact *contact;                      /* OPTIONAL */
116     Z_IOBilling *addlBilling;                  /* OPTIONAL */
117 } Z_IOOriginPartToKeep;
118
119 typedef struct Z_IORequest
120 {
121     Z_IOOriginPartToKeep *toKeep;              /* OPTIONAL */
122     Z_IOOriginPartNotToKeep *notToKeep;
123 } Z_IORequest;
124
125 typedef struct Z_IOTaskPackage
126 {
127     Z_IOOriginPartToKeep *originPart;          /* OPTIONAL */
128     Z_IOTargetPart *targetPart;
129 } Z_IOTaskPackage;
130
131 typedef struct Z_ItemOrder
132 {
133     enum
134     {
135         Z_ItemOrder_esRequest,
136         Z_ItemOrder_taskPackage
137     } which;
138     union
139     {
140         Z_IORequest *esRequest;
141         Z_IOTaskPackage *taskPackage;
142     } u;
143 } Z_ItemOrder;
144
145 int z_ItemOrder(ODR o, Z_ItemOrder **p, int opt);