تصميم:دواسوا/data

من ويكي أضِف
اذهب إلى التنقل اذهب إلى البحث

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

Data types

string(email_address)
an addr-spec a la rfc:5322
string(phone_number)
phone number a la rfc:3966