using  Biskilog_Accounting.Shared.CustomModels ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								using  Biskilog_Accounting.Shared.POSModels ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								using  System ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								using  System.Collections.Generic ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								using  System.Linq ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								using  System.Text ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								using  System.Threading.Tasks ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								namespace  Biskilog_Accounting.Shared.Interfaces  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								    public  interface  IProduct 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        IEnumerable < Unitofmeasure >  GetUnitofmeasures ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        IEnumerable < ProductItem >  GetProducts ( string  a_productKey  =  "" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        IEnumerable < Tblbrand >  GetBrands ( string  a_brandKey  =  "" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        IEnumerable < Tblcategory >  GetCategories ( string  a_categoryKey  =  "" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        IEnumerable < ProductItem >  GetLowstockItems ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  FetchProducts ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  FetchLowStockProducts ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  FetchUnits ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  FetchBrands ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  FetchCategories ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        void  RefreshList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        ProductItem  GetProductById ( string  a_id ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        ProductItem  GetProductByName ( string  name ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        string  GetUnitName ( string  a_unitCode ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        event  EventHandler  ProductsChanged ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        event  EventHandler  UnitsChanged ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        event  EventHandler  BrandsChanged ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        event  EventHandler  CategoriesChanged ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
								        Task  SyncProducts ( List < Tblproduct >  a_item ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncInventory ( List < Tblinventory >  a_item ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncInventoryEntries ( List < Tblinventoryentry >  a_item ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncPriceChanges ( List < Tblpricechange >  a_items ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncProductAltUnit ( List < Productaltunit >  a_items ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncRestockAsync ( List < Restocklevel >  a_items ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncUnitOfMeasureAsync ( List < Unitofmeasure >  a_items ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncStockAsync ( List < Tbstock >  a_items ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncBrandsAsync ( List < Tblbrand >  a_items ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        Task  SyncCategoriesAsync ( List < Tblcategory >  a_items ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        DateTime  GetLastSyncDate ( string  a_tablename ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								        void  SetLastSyncDate ( string  a_tableName ,  DateTime  a_timestamp ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								}