الفرق بين المراجعتين لصفحة «تصميم:دواسوا/data»
من ويكي أضِف
(بالنقل عن تصميم:دواسوا/API و الإضافة) |
ط (underscore for nodejs hates dashes) |
||
| (مراجعة متوسطة واحدة بواسطة نفس المستخدم غير معروضة) | |||
| سطر 1: | سطر 1: | ||
<div dir="ltr" style="direction: ltr;"> | <div dir="ltr" style="direction: ltr;"> | ||
| − | === | + | === Basic data structures === |
| − | Listing data record is comprised of the following two data structures: | + | Listing data record is comprised of the following two data structures, that are used to describe an entry through [[../API|API]] actions: |
=== <var>package-info</var> === | === <var>package-info</var> === | ||
| − | ; <var> | + | ; <var>name_latin</var> <nowiki>:</nowiki> string |
: the name of the medicine in Latin script | : the name of the medicine in Latin script | ||
; <var>name_arabic</var> <nowiki>:</nowiki> string | ; <var>name_arabic</var> <nowiki>:</nowiki> string | ||
: the name of the medicine in Arabic script, if available (optional) | : the name of the medicine in Arabic script, if available (optional) | ||
| − | ; <var> | + | ; <var>expiry_date</var> <nowiki>:</nowiki> date |
: the date of expiry of the medicine. The significance is in the precision of months, i.e YYYY/MM | : the date of expiry of the medicine. The significance is in the precision of months, i.e YYYY/MM | ||
| − | ; <var> | + | ; <var>package_state</var> <nowiki>:</nowiki> string(<kbd>fabrica</kbd> | <kbd>opened</kbd> | <kbd>partial</kbd>) : The case of the packaging of the medicine. |
; <var>governrate</var> <nowiki>:</nowiki> string(predefined) | ; <var>governrate</var> <nowiki>:</nowiki> string(predefined) | ||
: the governerate where the package is to be picked up | : the governerate where the package is to be picked up | ||
| سطر 21: | سطر 21: | ||
=== <var>contact-info</var> === | === <var>contact-info</var> === | ||
| − | ; <var> | + | ; <var>email_address</var> <nowiki>:</nowiki> [[#string(email_address)|string(email_address)]] |
: email address identifies a user who enlists an item. It is used to communicate with the user to confirm his listing, and to confirm the removal of a listing. It's a user's means to control his listings. It could be made invisible to viewers of a listing unless no phone number is given, in which case it is the only means to contact the user by those interested in a listing. | : email address identifies a user who enlists an item. It is used to communicate with the user to confirm his listing, and to confirm the removal of a listing. It's a user's means to control his listings. It could be made invisible to viewers of a listing unless no phone number is given, in which case it is the only means to contact the user by those interested in a listing. | ||
| − | ; <var> | + | ; <var>nickname</var> <nowiki>:</nowiki> string |
: A friendly name to greet the user by those contacting regarding a listing. | : A friendly name to greet the user by those contacting regarding a listing. | ||
| − | ; <var> | + | ; <var>phone_number</var> <nowiki>:</nowiki> [[#string(phone_number)|string(phone_number)]] |
: An optional method to contact a user by those interested in a listing. If entered then it is visible. | : An optional method to contact a user by those interested in a listing. If entered then it is visible. | ||
; <var>email_address_visible</var> <nowiki>:</nowiki> boolean | ; <var>email_address_visible</var> <nowiki>:</nowiki> boolean | ||
| سطر 31: | سطر 31: | ||
| − | === | + | === Stored records === |
| + | Stored data preserves some operational information in addition to the basic entry structure: | ||
== Listings == | == Listings == | ||
| + | ; id | ||
| + | : <code>base62(sha256(<var>email_address</var> . sha256(<var>name</var> . <var>expiry</var> . <var>submission_date</var>)))</code> | ||
| + | : entry's unique identifier | ||
; [[#package-info|package-info]] | ; [[#package-info|package-info]] | ||
; [[#contact-info|contact-info]] | ; [[#contact-info|contact-info]] | ||
| − | ; | + | ; submission_date : timestamp |
| − | ; | + | ; instatement_date : timestamp |
== Archive == | == Archive == | ||
| + | ; id | ||
; [[#package-info|package-info]] | ; [[#package-info|package-info]] | ||
; [[#contact-info|contact-info]] | ; [[#contact-info|contact-info]] | ||
: except: | : except: | ||
| − | :: <var> | + | :: <var>nickname</var> is omitted |
| − | :: <var> | + | :: <var>email_address</var> is replaced with <code>base62(sha256(<var>email-address</var>))</code> |
| − | :: <var> | + | :: <var>phone_number</var> is replaces with <code>base62(sha256(<var>phone-number</var>))</code> |
| − | ; | + | ; submission_date |
| − | ; <var> | + | ; instatement_date |
| + | ; removal_date | ||
| + | ; <var>removal_reason</var> : possible values: | ||
:; <kbd>unconfirmed</kbd> : | :; <kbd>unconfirmed</kbd> : | ||
:; <kbd>removed-by-user</kbd> : | :; <kbd>removed-by-user</kbd> : | ||
| سطر 52: | سطر 59: | ||
== Data types == | == Data types == | ||
| − | ; string( | + | ; string(email_address) |
: an addr-spec a la [[rfc:5322]] | : an addr-spec a la [[rfc:5322]] | ||
| − | ; string( | + | ; string(phone_number) |
: phone number a la [[rfc:3966]] | : phone number a la [[rfc:3966]] | ||
</div> | </div> | ||
المراجعة الحالية بتاريخ 13:37، 2 يناير 2017
Basic data structures
Listing data record is comprised of the following two data structures, that are used to describe an entry through API actions:
package-info
- name_latin : string
- the name of the medicine in Latin script
- name_arabic : string
- the name of the medicine in Arabic script, if available (optional)
- expiry_date : date
- the date of expiry of the medicine. The significance is in the precision of months, i.e YYYY/MM
- package_state : string(fabrica | opened | partial)
- The case of the packaging of the medicine.
- governrate : string(predefined)
- the governerate where the package is to be picked up
- description : text
- a brief description, and/or notes by the submitter
- photo : blob
- an optional photograph of the package
contact-info
- email_address : string(email_address)
- email address identifies a user who enlists an item. It is used to communicate with the user to confirm his listing, and to confirm the removal of a listing. It's a user's means to control his listings. It could be made invisible to viewers of a listing unless no phone number is given, in which case it is the only means to contact the user by those interested in a listing.
- nickname : string
- A friendly name to greet the user by those contacting regarding a listing.
- phone_number : string(phone_number)
- An optional method to contact a user by those interested in a listing. If entered then it is visible.
- email_address_visible : boolean
- Determines whether the email address is visible. Ignored if no valid phone number is entered.
Stored records
Stored data preserves some operational information in addition to the basic entry structure:
Listings
- id
base62(sha256(email_address . sha256(name . expiry . submission_date)))- entry's unique identifier
- package-info
- contact-info
- submission_date
- timestamp
- instatement_date
- timestamp
Archive
- id
- package-info
- contact-info
- except:
- nickname is omitted
- email_address is replaced with
base62(sha256(email-address)) - phone_number is replaces with
base62(sha256(phone-number))
- submission_date
- instatement_date
- removal_date
- removal_reason
- possible values:
- unconfirmed
- removed-by-user
- expired