Subversion Repositories SmartDukaan

Rev

Rev 85 | Rev 103 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

namespace java in.shop2020.model.v1.catalog
namespace py shop2020.thriftpy.model.v1.catalog

/**
        Objects
*/

struct Category{
        1:i64 id,
        2:string name,
        3:list<i64> childCategories,
        4:i64 parent_id,
        5:bool isTopLevel,
        6:i64 addedOn
}



struct ItemAttribs{
//This is Naveen's struct
        1:i64 id
}

struct Vendor{
        1:i64 id,
        2:string name
}


struct Warehouse{
        1:i64 id,
        2:string location,
        3:i64 vendor_id
}

struct ItemInventory{
        1:i64 id,
        2:map<i64,i64> availability,
        3:map<i64, double> priceMatrix,
        4:i64 lastCheckedOn
}

struct ItemInventoryHistory{
        1:i64 item_id,
        2:i64 warehouse_id,
        3:i64 timestamp,
        4:i64 availability
}

struct Item{
        1:i64 id,
        2:i64 category_id,
        3:ItemAttribs itemAttribs,
        4:ItemInventory itemInventory
}

exception CatalogServiceException{
        1:i64 id,
        2:string message
}




service CatalogService{

/**
        Content methods
*/

/**
        Availability and inventory attributes   
*/
        //all add and update methods - added by Ashish
        void addCategory(1:Category category) throws (1:CatalogServiceException cex),
        void addItemToCategory(1:Item item, 2:i64 category_id) throws (1:CatalogServiceException cex),
        void addItemAttribsToItem(1:ItemAttribs itemattribs, 2:i64 item_id) throws (1:CatalogServiceException cex),
        void addItemInventoryToItem(1:ItemInventory iteminventory, 2:i64 item_id) throws (1:CatalogServiceException cex),
        void addWarehouse(1:Warehouse warehouse) throws (1:CatalogServiceException cex),
        void addVendor(1:Vendor vendor) throws (1:CatalogServiceException cex),
        void updateInventory(1:i64 item_id, 2:i64 warehouse_id, 3: i64 quantity, 4:i64 timestamp) throws (1:CatalogServiceException cex),
        
        //Other accessor methods - added by Ashish
        Category getCategory(1:i64 id) throws (1:CatalogServiceException cex),
        list<Category> getAllCategories() throws (1:CatalogServiceException cex),
        Item getItem(1:i64 item_id) throws (1:CatalogServiceException cex),
        list<Item> getAllItemsForCategory(1:i64 category_id) throws (1:CatalogServiceException cex),
        ItemAttribs getItemAtttribs(1:i64 item_id) throws (1:CatalogServiceException cex),
        ItemInventory getItemInventory(1:i64 item_id) throws (1:CatalogServiceException cex),
        ItemInventoryHistory getItemInventoryHistory(1:i64 id, 2:i64 item_id, 3:i64 warehouse_id, 4: i64 from_date, 5:i64 to_date ) throws (1:CatalogServiceException cex),
        Warehouse getWarehouse(1:i64 warehouse_id) throws (1:CatalogServiceException cex),
        list<Warehouse> getAllWarehousesForItem(1:i64 item_is) throws (1:CatalogServiceException cex),
        i64 getExpectedDeliveryTime(1:i64 item_id) throws (1:CatalogServiceException cex),
        
        

}