diff --git a/models/DTRAM/InventoryManagement.model b/models/DTRAM/InventoryManagement.model new file mode 100644 index 0000000..578d56c --- /dev/null +++ b/models/DTRAM/InventoryManagement.model @@ -0,0 +1,7 @@ +channel ItemRegistration { + out inventory(itemDB:Map, registerItem(itemId:Str, itemName:Str, quantity:Int)) = insert(itemDB, itemId, {"count": quantity, "name": itemName}) +} + +channel ReceivingOrShipping(itemId:Str) { + out inventory.{itemId}.count(prev_quantity:Int, receiveOrShip(quantity:Int)) = prev_quantity + quantity +} diff --git a/models/DTRAM/InventoryManagementCheckMinus.model b/models/DTRAM/InventoryManagementCheckMinus.model new file mode 100644 index 0000000..e5c88d5 --- /dev/null +++ b/models/DTRAM/InventoryManagementCheckMinus.model @@ -0,0 +1,9 @@ +channel ItemRegistration { + out inventory(itemDB:Map, registerItem(itemId:Str, itemName:Str, quantity:Int)) = insert(itemDB, itemId, {"count": quantity, "name": itemName}) +} + +channel ReceivingOrShipping(itemId:Str) { + out inventory.{itemId}.count(prev_quantity:Int, receiveOrShip(quantity:Int)) = if(prev_quantity + quantity >= 0, + prev_quantity + quantity, + prev_quantity) +} diff --git a/models/DTRAM/InventoryManagementShippingReceiving.model b/models/DTRAM/InventoryManagementShippingReceiving.model new file mode 100644 index 0000000..75888eb --- /dev/null +++ b/models/DTRAM/InventoryManagementShippingReceiving.model @@ -0,0 +1,11 @@ +channel ItemRegistration { + out inventory(itemDB:Map, registerItem(itemId:Str, itemName:Str, quantity:Int)) = insert(itemDB, itemId, {"count": quantity, "name": itemName}) +} + +channel Receiving(itemId:Str) { + out inventory.{itemId}.count(prev_quantity:Int, receive(quantity:Int)) = prev_quantity + quantity +} + +channel Shipping(itemId:Str) { + out inventory.{itemId}.count(prev_quantity:Int, ship(quantity:Int)) = prev_quantity - quantity +} diff --git a/models/DTRAM/SimpleTwitter.model b/models/DTRAM/SimpleTwitter.model new file mode 100644 index 0000000..486fafb --- /dev/null +++ b/models/DTRAM/SimpleTwitter.model @@ -0,0 +1,7 @@ +channel Signup { + out accounts(accountDB:Map, signUp(accountId:Str, name:Str)) = insert(accountDB, accountId, {"name": name, "tweets": nil}) +} + +channel Tweet(accountId:Str) { + out accounts.{accountId}.tweets(tweetList:List, tweet(contents:Str)) = append(tweetList, contents) +} diff --git a/models/DTRAM/SimpleTwitterChangeName.model b/models/DTRAM/SimpleTwitterChangeName.model new file mode 100644 index 0000000..b206e97 --- /dev/null +++ b/models/DTRAM/SimpleTwitterChangeName.model @@ -0,0 +1,11 @@ +channel Signup { + out accounts(accountDB:Map, signUp(accountId:Str, name:Str)) = insert(accountDB, accountId, {"name": name, "tweets": nil}) +} + +channel Tweet(accountId:Str) { + out accounts.{accountId}.tweets(tweetList:List, tweet(contents:Str)) = append(tweetList, contents) +} + +channel ChangeName(accountId:Str) { + out accounts.{accountId}.name(prevNamr:Str, changeName(name:Str)) = name +} diff --git a/models/DTRAM/SimpleTwitterDuplicateCheck.model b/models/DTRAM/SimpleTwitterDuplicateCheck.model new file mode 100644 index 0000000..07de300 --- /dev/null +++ b/models/DTRAM/SimpleTwitterDuplicateCheck.model @@ -0,0 +1,9 @@ +channel Signup { + out accounts(accountDB:Map, signUp(accountId:Str, name:Str)) = if(contains(accountDB, accountId), + accountDB, + insert(accountDB, accountId, {"name": name, "tweets": nil})) +} + +channel Tweet(accountId:Str) { + out accounts.{accountId}.tweets(tweetList:List, tweet(contents:Str)) = append(tweetList, contents) +}