Nano.zip
SystemcreateOrUpdateproduct(name:String,properties:Pairs*):ProductsearchProducts(
nameFilter:String, sectionFilter:String ):Product*deleteProduct(name:String)createOrEditSection(path:String, title:String):SectionsearchSections(pathFilter:String):Section*deleteSection(path:String)moveProduct(product:Product, section:Section)addToBasket(product:Product,quantity:Double):BasketreadBasket():BasketmodifyBasket(lines:ProductQuantityLine*):Basketregister(clientName:String,password:String):Clientlogin(clientName:String,password:String):ClientchangeProfile(clientName:String,password:String,bankAccount:String):Clientpay():FactureProductManagersave(product:Product):Productlist(nameFilter:String,sectionFilter:String):Product*delete(product:Product)SectionManagerroot:Sectionsave(section:Section):Sectionlist(pathFilter:String):Section*delete(section:Section)BasketManagerreadBasket(client:Client):BasketaddToBasket(client:Client,line:ProductQuantityLine):BasketmodifyBasket(client:Client,lines:ProductQuantityLine*):BasketProductname:Stringdescription:Stringimage:Byte*price:DoubleStorageSectionpath:Stringtitle:StringBasketProductQuantityLinequantity:DoubleUserManagerclientExist(clientName:String):booleansaveClient(clientName:String,password:String):ClientclientHasPassword(clientName:String,password:String):booleanchangeProfile(clientName:String,password:String,bankAccount:String):ClientClientname:Stringpassword:StringbankAccount:StringFactureGAFAPayServiceperformTransaction()FactureManagerfactureFromBasket(basket:Basket):Facture