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

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

Remove Account data type and update others.

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
30.. _label-contact-address:
31
32Contact Address
33---------------
34
35A postal address.
36
37Connected to: :ref:`label-contact-data` (n:1)
38
39Used in the following use cases:
40
41
42.. _label-contact-data:
43
44Contact Data
45------------
46
47The data neccessary to contact some customer, staff person or similar
48entity. Contact data might contain several addresses, phone numbers,
49emails, etc.
50
51Connected to: :ref:`label-customer` (1:1),
52:ref:`label-contact-address` (1:|n0|), :ref:`label-contact-email` (1:|n0|)
53
54Used in the following use cases:
55
56
57.. _label-contact-email:
58
59Contact Email
60-------------
61
62An email address with optional additional clear name. For email
63addresses we store some timestamp that indicates when the respective
64email address was last checked successfully (thus marking it a 'valid'
65one).
66
67Connected to: :ref:`label-contact-data` (|n0|:1)
68
69Used in the following use cases:
70
71
72.. _label-contact-phone:
73
74Contact Phone
75-------------
76
77A phone number.
78
79Connected to: :ref:`label-contact-data` (|n0|:1)
80
81Used in the following use cases:
82
83
84.. _label-contract:
85
86Contract
87--------
88
89A contract is created whenever a :ref:`label-customer` orders some
90:ref:`label-service` from the system. It is always connected to a
91:ref:`label-customer` and a :ref:`label-service` .
92
93A contract is not necessarily written on paper and signed by
94people. Instead it is an abstraction used inside the system.
95
96It is always created from a :ref:`label-service` , which tells about
97the basic data, with additional parameters set that depend on the type
98of :ref:`label-service` ordered.
99
100Contracts can have multiple :ref:`label-contract-addon`.
101
102Connected to: :ref:`label-service` (|n0|:1), :ref:`label-customer` (|n0|:1),
103:ref:`label-contract-addon` (1:|n0|)
104
105Used in the following use cases:
106
107
108.. _label-contract-addon:
109
110Contract Addon
111--------------
112
113Kind of 'sub contract' that always belongs to some already existing
114contract but comes with an own set of parameters. Contract addons are
115created by contracts.
116
117Connected to: :ref:`label-contract` (|n0|:1)
118
119
120.. _label-contract-types:
121
122Contract Types
123--------------
124
125.. _label-contract-termination:
126
127Contract Termination
128--------------------
129
130.. _label-consumption:
131
132Consumption
133-----------
134
135.. _label-customer:
136
137Customer
138--------
139
140Beneficiary of a contract
141
142.. _label-login-credentials:
143
144Login Credentials
145-----------------
146
147.. _label-meter:
148
149Meter
150-----
151
152.. _label-meter-status:
153
154Meter Status
155------------
156
157.. _label-meter-value:
158
159Meter Value
160-----------
161
162.. _label-meter-reader:
163
164Meter Reader
165------------
166
167.. _label-payment:
168
169Payment
170-------
171
172.. _label-point-of-consumption:
173
174Point of Consumption
175--------------------
176
177.. _label-report:
178
179Report
180------
181
182
183.. _label-service:
184
185Service
186-------
187
188The system will provide different services to customers. These can
189have arbitrary forms, including one-time services (like installation
190of meters) and open-ended long-time services (like delivering power
191based on contract). Services are managable by staff like goods offered
192in a shop.
193
194Services define the conditions under which they can be ordered by
195customers, including prices, runtimes, etc.
196
197Services also serve as factories for contracts.
198
199Services can trigger transactions. For instance if some customer
200orders a service. When the service charges become due, a respective
201transaction is triggered.
202
203Connected to: :ref:`label-contract` (1:|n0|)
204
205Used in the following use cases:
206
207
208
209.. _label-timestamp:
210
211Timestamp
212---------
213
214
215.. _label-transaction:
216
217Transaction
218-----------
219
220A transaction is some business-relevant action taken. A transaction
221means basically, that something happened, that leads to increased or
222decreased customer accounts. Normally this is something like a
223payment, some service order or similar.
224
225Transactions do always belong to one certain customer account. They
226also contain some amount of money which is thereby transfered to or
227from a customer's account. They also always reference a service which
228is consumed, purchased, or (pre-)paid by the respective customer.
229
230Connected to: :ref:`label-customer` (1:|n0|), :ref:`label-service`
231(|n0|:1)
232
233Used in the following use cases:
234
235
236.. [#] Relation types: (1:1): One-to-one, (1:n): One-to-many, (n:1):
237       many-to-one, (n:m): many-to-many. ``n`` and ``m`` mean some
238       value ``1..n``. To indicate zero or more (``0..n``) relations,
239       we use |n0| and |m0| respectively.
Note: See TracBrowser for help on using the repository browser.