workspace "IXOlist | Token Offer | Business processes @ Investor" { !identifiers hierarchical model { properties { "structurizr.groupSeparator" "/" } div-dir = person "Division Director" { } div-acct = person "Division Accountant" { } purchaser = softwareSystem "Purchaser" { account-a = container "Account C" { tags "Main Account" } account-b = container "Account D" { tags "Main Account" } tags "Architectures softwaresystem" } group "IXOlist" { token_offer = softwaresystem "Token Offer" { description "Business processes @ Investor" tags "Business processes softwaresystem" url "https://ixolist.netlify.app/apps/token-offer/" } } group "IXOlist" { group "Token Offer" { web3 = softwaresystem "Web3 authentication tool" { group "Transaction-request" { web3-sign = container "Sign" { tags "Button" } } tags "Architectures softwaresystem" } governance = softwareSystem "Governance" { group "Actions" { gov-aprove = container "Aprove" { tags "Button" } gov-execute = container "Execute" { tags "Button" } } } msig = softwareSystem "Msig" { tags "Contract" } offer-withdraw = softwareSystem "Withdraw purchased tokens" { group "Actions" { offer-withdraw-create-proposal = container "Create Withdraw proposal" { tags "Button state" } } group "Smart Contract" { offer-withdraw-deposit = container "Deposit smart contract" { tags "Contract" } } tags "Architectures softwaresystem" } take-part = softwareSystem "Take part in the offer" { group "Actions" { take-part = container "Take part" { tags "Button state" } } group "Smart Contract" { take-part-deposit = container "Deposit smart contract" { tags "Contract" } } group "Take part" { take-part-division = container "Division" { tags "Input Field" } take-part-token-buy = container "Token for buy" { tags "Input Field" } take-part-token-payment = container "Token for payment" { tags "Input Field" } } group "Transaction Data" { take-part-submit = container "Submit" { tags "Button" } } tags "Architectures softwaresystem" } } } "div-dir" -> "purchaser.account-a" "div-acct" -> "purchaser.account-b" "msig" -> "take-part.take-part-deposit" "msig" -> "offer-withdraw.offer-withdraw-deposit" "web3.web3-sign" -> "msig" "Execute transaction" "take-part.take-part" -> "take-part.take-part-division" "take-part.take-part-token-buy" -> "take-part.take-part-token-payment" "take-part.take-part-token-payment" -> "take-part.take-part-submit" "take-part.take-part-division" -> "take-part.take-part-token-buy" "take-part.take-part-submit" -> "web3.web3-sign" "UAL + ESR" "governance.gov-execute" -> "web3.web3-sign" "UAL + ESR" "governance.gov-aprove" -> "web3.web3-sign" "UAL + ESR" "offer-withdraw.offer-withdraw-create-proposal" -> "web3.web3-sign" "UAL + ESR" "offer-withdraw.offer-withdraw-deposit" -> "purchaser.account-b" "purchaser.account-a" -> "take-part.take-part" "purchaser.account-a" -> "governance.gov-aprove" "purchaser.account-a" -> "governance.gov-execute" "purchaser.account-a" -> "offer-withdraw.offer-withdraw-create-proposal" "purchaser.account-b" -> "governance.gov-aprove" #!include \ # "./4-code/index.dsl" } views { systemLandscape "ixolist-token_offer-business_process-investor-systemlandscape" { title "IXOlist | Token Offer | Business processes @ Investor" include "token_offer" } #!include \ #"./4-code/index.dsl" dynamic "take-part" "ixolist-token_offer-business_processes-round-take_part-dynamic" { title "IXOlist | Token Offer | Round - take part" "div-dir" -> "purchaser.account-a" "purchaser.account-a" -> "take-part.take-part" "take-part.take-part" -> "take-part.take-part-division" "take-part.take-part-division" -> "take-part.take-part-token-buy" "take-part.take-part-token-buy" -> "take-part.take-part-token-payment" "take-part.take-part-token-payment" -> "take-part.take-part-submit" "take-part.take-part-submit" -> "web3.web3-sign" "web3.web3-sign" -> "msig" "div-acct" -> "purchaser.account-b" "purchaser.account-b" -> "governance.gov-aprove" "governance.gov-aprove" -> "web3.web3-sign" "purchaser.account-a" -> "governance.gov-aprove" "governance.gov-aprove" -> "web3.web3-sign" "purchaser.account-a" -> "governance.gov-execute" "governance.gov-execute" -> "web3.web3-sign" "web3.web3-sign" -> "msig" "msig" -> "take-part.take-part-deposit" } dynamic "offer-withdraw" "ixolist-token_offer-business_processes-round-withdraw-dynamic" { title "IXOlist | Token Offer | Funds - withdraw" "div-dir" -> "purchaser.account-a" "div-acct" -> "purchaser.account-b" "purchaser.account-a" -> "offer-withdraw.offer-withdraw-create-proposal" "offer-withdraw.offer-withdraw-create-proposal" -> "web3.web3-sign" "web3.web3-sign" -> "msig" "purchaser.account-a" -> "governance.gov-aprove" "governance.gov-aprove" -> "web3.web3-sign" "purchaser.account-a" -> "governance.gov-execute" "governance.gov-execute" -> "web3.web3-sign" "web3.web3-sign" -> "msig" "msig" -> "offer-withdraw.offer-withdraw-deposit" "offer-withdraw.offer-withdraw-deposit" -> "purchaser.account-b" } styles { element "Input Field" { shape "box" width "450" height "150" background "white" opacity "100" } element "Input Field" { border "solid" strokeWidth "5" stroke " #e6e6e6" } element "Input Field" { description true metadata true # icon } element "Input Field" { fontSize "24" color "black" colour "black" } element "Button Rout" { shape "box" width "370" height "115" background "white" opacity "100" } element "Button Rout" { border "dashed" strokeWidth "0" stroke "black" } element "Button Rout" { description true metadata true # icon } element "Button Rout" { fontSize "16" color "black" } element "Info" { shape "box" width "370" height "250" background "white" opacity "100" } element "Info" { border "solid" strokeWidth "0" stroke "black" } element "Info" { description true metadata true # icon } element "Info" { fontSize "20" color "black" } element "Button" { shape "roundedbox" width "260" height "120" background "black" opacity "100" } element "Button" { border "solid" strokeWidth "0" # stroke "blue" } element "Button" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Button" { fontSize "16" color "white" } element "Contract" { shape "Hexagon" width "350" height "100" background "white" # opacity "100" } element "Contract" { border "solid" strokeWidth "5" stroke "#9011bb" } element "Contract" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Contract" { fontSize "26" color "#9011bb" } element "Main Account" { shape "Circle" width "200" height "75" background "#007acc" # opacity "100" } element "Main Account" { border "solid" strokeWidth "0" #stroke "black" } element "Main Account" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Main Account" { fontSize "18" color "white" } element "Account" { shape "Circle" width "200" height "75" background "white" # opacity "100" } element "Account" { border "solid" strokeWidth "0" stroke "black" } element "Account" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Account" { fontSize "18" color "black" } element "Type Transfer" { shape "box" width "450" height "305" background "white" opacity "100" } element "Type Transfer" { border "dashed" strokeWidth "0" stroke "black" } element "Type Transfer" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Type Transfer" { fontSize "20" color "black" } element "Person" { shape "Person" width "200" height "200" background "#08427B" opacity "100" } element "Person" { border "solid" strokeWidth "0" stroke "#08427B" } element "Person" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Person" { fontSize "20" color "white" } element "Business processes softwaresystem" { shape "RoundedBox" width "450" height "300" background "white" # opacity "100" } element "Business processes softwaresystem" { border "solid" strokeWidth "5" stroke "#11bb66" } element "Business processes softwaresystem" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Business processes softwaresystem" { fontSize "26" color "#11bb66" } element "Button state" { shape "roundedbox" width "260" height "120" background "white" opacity "100" } element "Button state" { border "dashed" strokeWidth "0" stroke "black" } element "Button state" { description true metadata true # icon } element "Button state" { fontSize "16" color "black" } element "Architectures softwaresystem" { shape "RoundedBox" width "450" height "300" background "white" # opacity "100" } element "Architectures softwaresystem" { border "solid" strokeWidth "5" stroke "black" } element "Architectures softwaresystem" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Architectures softwaresystem" { fontSize "26" color "black" } } terminology { } } }