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

Last change on this file since 10737 was 10737, checked in by Henrik Bettermann, 11 years ago

Minor text changes.

Add use case 'Add Customer by user'.

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 :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
78Mobile phone number which is capable of receiving sms text messages.
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-customer:
126
127Customer
128--------
129
130Beneficiary of a contract
131
132
133.. _label-login-credentials:
134
135Login Credentials
136-----------------
137
138
139.. _label-meter:
140
141Meter
142-----
143
144
145.. _label-meter-status:
146
147Meter Status
148------------
149
150
151.. _label-meter-value:
152
153Meter Value
154-----------
155
156
157.. _label-meter-reader:
158
159Meter Reader
160------------
161
162
163.. _label-point-of-consumption:
164
165Point of Consumption
166--------------------
167
168
169.. _label-report:
170
171Report
172------
173
174
175.. _label-service:
176
177Service
178-------
179
180The system will provide different services to
181:ref:`label-customer`\ s. These can have arbitrary forms, including
182one-time services (like installation of meters) and open-ended
183long-time services (like delivering power based on contract). Services
184are managable by staff like goods offered in a shop.
185
186Services define the conditions under which they can be ordered by
187:ref:`label-customer`\ s, including prices, runtimes, etc.
188
189Services also serve as factories for :ref:`label-contract`\ s.
190
191Connected to: :ref:`label-contract` (1:|n0|),
192
193Used in the following use cases:
194
195
196
197.. _label-timestamp:
198
199Timestamp
200---------
201
202
203.. _label-transaction:
204
205Transaction
206-----------
207
208A transaction is some business-relevant action taken. A transaction
209means basically, that something happened, that leads to increased or
210decreased customer accounts. Normally this is something like a
211payment, some service order or similar.
212
213Transactions do always belong to one certain customer account. They
214also contain some amount of money which is thereby transfered to or
215from a customer's account. They also always reference a service which
216is consumed, purchased, or (pre-)paid by the respective customer.
217
218Connected to: :ref:`label-customer` (1:|n0|), :ref:`label-service`
219(|n0|:1)
220
221Used in the following use cases:
222
223
224.. [#] Relation types: (1:1): One-to-one, (1:n): One-to-many, (n:1):
225       many-to-one, (n:m): many-to-many. ``n`` and ``m`` mean some
226       value ``1..n``. To indicate zero or more (``0..n``) relations,
227       we use |n0| and |m0| respectively.
Note: See TracBrowser for help on using the repository browser.