diff --git a/AlgebraicDataflowArchitectureModel/models/CustomerManagement.model b/AlgebraicDataflowArchitectureModel/models/CustomerManagement.model new file mode 100644 index 0000000..5277f32 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/models/CustomerManagement.model @@ -0,0 +1,21 @@ +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 +}