petshop.app
petshop/petshop.app
Download original file · Petstore source contents
1domain petshop;23application petstore {4environment develop {5deploy customer;6deploy product;7deploy inventory;8deploy petshop;9transactions {10mode: LOCAL;11resource: shopRecordsResource;12ordinaryUpdates: PARALLEL;13}14}15environment testing {16deploy inventory;17deploy petshop;18quantum {19system: UNIFIED_STORE;20resource: shopLedger;21}22}23}2425requests {26idempotency retention 3 days;27duplicateWindow 5 seconds;28}2930bind importCatalogue to product.listCatalogue;31bind localizeCatalog to product.localizeProductLabels;32bind initializeInventory to inventory.initializeInventory;33i18n {34defaultLocale "en-US";35supportedLocales "en-US", "zh-CN";36}3738header requestContext {39unique String globalSerialNumber;40String callerId;41String requestSerialNumber;42String callMode;43String callOrigin;44}4546header responseContext {47String status(Default = "OK");48}4950tables entities {51table SHOP_RECEIPTS(Receipt) {52primarykey(Receipt.receiptNumber);53auto Receipt.receiptNumber prefix "RECEIPT";54foreignkey(Receipt.buyer) references Buyer;55foreignkey(Receipt.order) references ShopOrder;56}57}5859tables roles {60table SHOP_CART_LINES(CartLine) {61primarykey(CartLine.buyer, CartLine.goods);62foreignkey(CartLine.buyer) references Buyer;63foreignkey(CartLine.goods) references Goods;64}65table SHOP_ORDER_LINES(OrderLine) {66primarykey(OrderLine.lineNumber);67auto OrderLine.lineNumber prefix "ORDER-LINE";68foreignkey(OrderLine.goods) references Goods;69snapshot(OrderLine.name, OrderLine.unitPrice);70}7172table SHOP_CARTS(Cart) {73primarykey(Cart.buyer);74foreignkey(Cart.buyer) references Buyer;75}76table SHOP_SETTLEMENT_ACCOUNTS(SettlementAccount) {77primarykey(SettlementAccount.accountNumber);78}79table SHOP_GOODS(Goods) {80primarykey(Goods.sku);81current(Goods.name);82}83table SHOP_BUYERS(Buyer) {84primarykey(Buyer.membershipNumber);85}8687table SHOP_MERCHANTS(Merchant) {88primarykey notnull String merchantRowId;89}90}9192tables contracts {93table SHOP_RESERVATIONS(PetReservationAgreement) {94primarykey(PetReservationAgreement.reservationNumber);95auto PetReservationAgreement.reservationNumber prefix "RESERVATION";96foreignkey(PetReservationAgreement.buyer) references Buyer;97foreignkey(PetReservationAgreement.goods) references Goods;98}99table SHOP_ORDERS(ShopOrder) {100primarykey(ShopOrder.orderNumber);101auto ShopOrder.orderNumber prefix "ORDER";102foreignkey(ShopOrder.buyer) references Buyer;103index buyerOrders(ShopOrder.buyer);104}105}106107scope {108local(in requestContext, out responseContext) {109repository(argument(0, Goods.active), Goods[]) using shopRecords listProducts;110duplicate key(111Buyer.membershipNumber,112Goods.sku113) facts(PetReservationAgreement.quantity) window 10 seconds reserveShopPet;114115duplicate key(Buyer.membershipNumber, Goods.sku) facts(CartAdditionAgreement.quantity) addCartItem;116duplicate key(Buyer.membershipNumber) facts(ProfileAgreement) updateShopCustomer;117duplicate key(118Buyer.membershipNumber,119ShopOrder.orderNumber120) facts(ShopOrder.orderNumber) deliverShopOrder;121duplicate key(Buyer.membershipNumber) facts(Buyer.membershipNumber) clearShopCart;122123duplicate key(124Buyer.membershipNumber,125ShopOrder.orderNumber126) facts(ReturnRequestAgreement.reason) requestShopReturn;127duplicate key(128Buyer.membershipNumber,129ShopOrder.orderNumber130) facts(PaidCancellationAgreement.reason) cancelPaidShopOrder;131duplicate key(132Buyer.membershipNumber,133ShopOrder.orderNumber134) facts(ShopOrder.orderNumber) approveShopReturn;135duplicate key(Buyer.membershipNumber, Goods.sku) facts(Goods.sku) removeCartItem;136duplicate key(137Buyer.membershipNumber,138ShopOrder.orderNumber139) facts(ShipmentAgreement.tracking) shipShopOrder;140duplicate key(141Buyer.membershipNumber,142Goods.sku143) facts(CartQuantityAgreement.quantity) setCartQuantity;144duplicate key(Buyer.membershipNumber) facts(Buyer) registerShopCustomer;145duplicate key(Buyer.membershipNumber) facts(WalletFundingAgreement.amount) fundShopWallet;146duplicate key(Goods.sku) facts(StockReceiptAgreement.quantity) receiveShopStock;147148duplicate key(149Buyer.membershipNumber,150ShopOrder.orderNumber151) facts(UnpaidCancellationAgreement.reason) cancelUnpaidShopOrder;152duplicate key(153Buyer.membershipNumber,154ShopOrder.orderNumber155) facts(ShopOrder.orderNumber) payShopOrder;156157duplicate key(Buyer.membershipNumber) facts(Buyer.membershipNumber) placeShopOrder;158}159}160161web {162start initializeStore;163expose browseShopProducts;164expose readShopCustomer;165expose readShopCart;166expose readShopOrders;167expose readShopInventory;168expose readShopMerchant;169expose registerShopCustomer;170expose fundShopWallet;171expose receiveShopStock;172expose updateShopCustomer;173expose addCartItem;174expose setCartQuantity;175expose removeCartItem;176expose clearShopCart;177expose placeShopOrder;178expose payShopOrder;179expose shipShopOrder;180expose deliverShopOrder;181expose cancelUnpaidShopOrder;182expose cancelPaidShopOrder;183expose requestShopReturn;184expose approveShopReturn;185expose previewShopOrder;186expose reserveShopPet;187expose readShopReservation;188}