تصميم:دواسوا/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