Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / models / CustomerManagement.model
channel AddCustomer {
	out customers(csDB:Map, addCustomer(uid:Str, org:Str)) = insert(csDB, uid, {"organization": org})
}

channel AddCampany {
	out companies(cmDB:Map, addCampany(cid:Str, address:Str)) = insert(cmDB, cid, {"address": address})
}

channel SetCustomerOrganization(uid:Str) {
	out customers.{uid}.organization(prevCid:Str, setOrganization(cid)) = cid
}

channel SetCompanyAddress(cid:Str) {
	out companies.{cid}.address(prevAdd:Str, setAddress(add)) = add
}

channel UpdateCustomerAddress(uid:Str) {
	in customers.{uid}.organization(prevCid, updateCustomerAddress(cid, add)) = cid
	in companies.{cid}.address(prevAdd, updateCustomerAddress(cid, add)) = add
	out customers.{uid}.address(prevAdd, updateCustomerAddress(cid, add)) = add
}