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

Last change on this file since 10732 was 10732, checked in by uli, 12 years ago

Update/fix existing types.

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