source: main/eko-disco-specs/trunk/data.rst @ 10729

Last change on this file since 10729 was 10729, checked in by uli, 11 years ago

Tell more about contracts and services.

File size: 5.3 KB
Line 
1
2.. |n0| replace:: n\ :sub:`0`
3.. |m0| replace:: m\ :sub:`0`
4
5.. _label-data-entities:
6
7Data Entities
8=============
9
10These are the data entities the new system is supposed to model. Each
11of these entities should be addable, editable, and removable as
12covered in more detail in :ref:`label-use-cases`.
13
14For each entity we give a short description to tell what it means,
15what its purpose is and in what regards (and how) it should be handled
16by the system. Again the more detailed actions on these entities
17provided by the system are described in the :ref:`label-use-cases`
18section.
19
20The data entities are sorted alphabetically, not by importance or
21similar. Used description terms should link to other respective
22entities/terms where possible.
23
24Each data entitiy description provides a list of use cases and other
25data entities connected. Connections to other data entities contain a
26relationship telling how many instances of the described entity are
27connected to how many instances of the related entity [#]_.
28
29.. _label-account:
30
31Account
32-------
33
34A customer account contains the assets/debts of a :ref:`customer
35<label-customer>`. It is *not* a system account (see
36:ref:`label-login-credentials` for that) but a virtual financial
37account kept by the system. Basically it tells, how much money a
38certain :ref:`customer <label-customer>` owes or is eligible for. Each
39account is connected to exactly one customer.
40
41Connected to: :ref:`label-customer` (1:1), :ref:`label-payment` (1:n),
42:ref:`label-consumption` (1:n)
43
44Used in the following use cases: :ref:`label-uc-account-add`
45
46
47.. _label-contact-address:
48
49Contact Address
50---------------
51
52A postal address.
53
54Connected to: :ref:`label-contact-data` (n:1)
55
56Used in the following use cases:
57
58
59.. _label-contact-data:
60
61Contact Data
62------------
63
64The data neccessary to contact some customer, staff person or similar
65entity. Contact data might contain several addresses, phone numbers,
66emails, etc.
67
68Connected to: :ref:`label-customer` (1:1),
69:ref:`label-contact-address` (1:|n0|), :ref:`label-contact-email` (1:|n0|)
70
71Used in the following use cases:
72
73
74.. _label-contact-email:
75
76Contact Email
77-------------
78
79An email address with optional additional clear name. For email
80addresses we store some timestamp that indicates when the respective
81email address was last checked successfully (thus marking it a 'valid'
82one).
83
84Connected to: :ref:`label-contact-data` (|n0|:1)
85
86Used in the following use cases:
87
88
89.. _label-contact-phone:
90
91Contact Phone
92-------------
93
94A phone number.
95
96Connected to: :ref:`label-contact-data` (|n0|:1)
97
98Used in the following use cases:
99
100
101.. _label-contract:
102
103Contract
104--------
105
106A contract is created whenever a customer orders some service from the
107system. It is always connected to a customer and a service.
108
109A contract is not necessarily written on paper and signed by
110people. Instead it is an abstraction used inside the system.
111
112It is always created from a service, which tells about the basic data,
113with additional parameters set that depend on the type of service
114ordered.
115
116Contracts can have contract additions.
117
118Connected to: :ref:`label-service` (1:1), :ref:`label-customer`
119
120Used in the following use cases:
121
122
123.. _label-contract-types:
124
125Contract Types
126--------------
127
128.. _label-contract-termination:
129
130Contract Termination
131--------------------
132
133.. _label-consumption:
134
135Consumption
136-----------
137
138.. _label-customer:
139
140Customer
141--------
142
143Beneficiary of a contract
144
145.. _label-login-credentials:
146
147Login Credentials
148-----------------
149
150.. _label-meter:
151
152Meter
153-----
154
155.. _label-meter-status:
156
157Meter Status
158------------
159
160.. _label-meter-value:
161
162Meter Value
163-----------
164
165.. _label-meter-reader:
166
167Meter Reader
168------------
169
170.. _label-payment:
171
172Payment
173-------
174
175.. _label-point-of-consumption:
176
177Point of Consumption
178--------------------
179
180.. _label-report:
181
182Report
183------
184
185
186.. _label-service:
187
188Service
189-------
190
191The system will provide different services to customers. These can
192have arbitrary forms, including one-time services (like installation
193of meters) and open-ended long-time services (like delivering power
194based on contract). Services are managable by staff like goods offered
195in a shop.
196
197Services define the conditions under which they can be ordered by
198customers, including prices, runtimes, etc.
199
200Services also serve as factories for contracts.
201
202Connected to: :ref:`label-contract` (1:|n0|)
203
204Used in the following use cases:
205
206
207
208.. _label-timestamp:
209
210Timestamp
211---------
212
213
214.. _label-transaction:
215
216Transaction
217-----------
218
219A transaction is some business-relevant action taken. A transaction
220means basically, that something happened, that leads to increased or
221decreased customer accounts. Normally this is something like a
222payment, some service order or similar.
223
224Transactions do always belong to one certain customer account. They
225also contain some amount of money which is thereby transfered to or
226from a customer's account. They also always reference a service which
227is consumed or purchased by the respective customer.
228
229.. todo:: this is an initial draft, by no means the final version
230
231Connected to: :ref:`label-customer` (1:|n0|), :ref:`label-service`
232(|n0|:1)
233
234Used in the following use cases:
235
236
237.. [#] Relation types: (1:1): One-to-one, (1:n): One-to-many, (n:1):
238       many-to-one, (n:m): many-to-many. ``n`` and ``m`` mean some
239       value ``1..n``. To indicate zero or more (``0..n``) relations,
240       we use |n0| and |m0| respectively.
Note: See TracBrowser for help on using the repository browser.