As a user, I can start a conflict about the deal, so I can express I do not agree to the deal anymore.
kikipluche opened this issue · 0 comments
Abstract:
In the first hashtags on Swarm City Boardwalk, a request becomes a deal when both parties agree to the deal, and are equally invested in it.
Both Seeker and Provider can put the deal in a state of conflict. This means the funds are locked, and only the Hashtagmaintainer can decide how the funds will be paid out.
How it could work:
On the detail-view of the deal, the user taps "Start conflict". The user then inputs a reason for starting the conflict. This reason appears in the deal's chat.
Also, the chat secret is encrypted with the Hashtagmaintainer's public key and added to the deal object. The Hashtagmaintainer is added to the chat conversation.
In the deal chat a service message appears that says: "This deal is now in conflict, the Hashtagmaintainer (name Hashtagmaintainer) is added". The reason for conflict, stated by the user is, also transferred into the chat.
The transaction is signed and then sent to the API.
The hashtagcontract dispute
function is used, which will change the state of the deal to "Disputed".
How the API could be used:
Re-use sendSignedTx:
The API receives the signed transaction and returns a transaction hash.
The API emits hashtagItemChanged
event.
What it looks like:
Userflow: https://invis.io/ABGM89SX3V5#/297532803_-Hashtag--contractadress---dealhash-_STARTCONFLICT_I
( > in Invision, hold shift to see clickable areas)
routes:
- /hashtag/[contractadress]/[dealhash]
- /confirm-conflict/
- /conflict-processing/
When an item is in deal , directly below the green area a button is visible, copy "start conflict" (seen by both Seeker and Provider) (1).
When this button is tapped, the view changes to the reason-input-view (2). This view contains:
- inputfield, label "What’s your motivation for putting this deal in conflict?"
- a black x-mark (cancel button)
- a big white iconbutton with next-icon (confirm button)
When the inputfield is empty, the confirm button is disabled. When the inputfield contains at least 1 character, the confirm button is enabled.
Tapping the cancelbutton aborts the whole action (thus changing the view back to the detailview. Tapping the confirm-button changes the view to the confirm-conflict-page (3).
The copy on the confirm-conflict-page (3) is "Put this deal into conflict?".
The small copy is "This can not be undone. The hashtag maintainer will be notified and try to resolve this conflict."
After signing through the password-unlock component (3b), the view changes to conflict-processing-page (4).
conflict-processing-page (4) is a processing page (https://github.com/swarmcity/SwarmCityPM#26), in this case the copy on succes is "Deal is in conflict."
When the user taps the white button, the view changes back to the detailview of the item, now showing that the item is in conflict (5), visible directly below the shareable link:
- a dotted horizontal line
- the reply of the Provider, consisting of:
- reply description
- Datetime
- black checkmark (small) and (amount) and 'SWT'
- avatar
- name an "•" and ProviderRep* and "SWR" (blue)
*visually presented simple as "SWR"
- a horizontal divider line
- a chat-button
- copy "This deal is in conflict."
- smaller copy "The hashtagmaintainer is added to your chat."
- avatar of hashtagmaintainer
- name of hashtagmaintainer
- a red border
- a button with (black) copy "payout" (ONY VISIBLE FOR SEEKER)
In the chatview it will also be visible that the deal is now in conflict.
- timestamp of when deal was put in conflict
- a "servicemessage" with copy: "This deal is now in conflict"
- The avatar of the one who put the deal in conflict
- copy: '[username]'s motivation'
- The motivation for putting the deal in conflict, as stated by the one who putted this deal in conflict.
- timestamp of when hashtag maintainer was added.
- a "servicemessage" with copy: "The hashtag maintainer is added."
- avatar of hashtag maintainer
- username of hashtag maintainer
When looking to the item in conflict at the hashtag-page, we see some visual elements are added to express the item being in conflict:
- the avatar of the hashtag maintainer is added, horizontally behind the avatar of the provider
- copy "This deal is in conflict."
Desktop view:
Invisionlinks with login (for inspect mode!):
mobile: https://projects.invisionapp.com/d/main#/console/13838256/297532803/inspect
desktop: https://projects.invisionapp.com/d/main#/console/14147648/297532080/inspect
Documentation / references
With ♡ from Swarm City