using Fitness_core_BE.Models; namespace Fitness_core_BE.Interfaces { public interface IInventoryRepository { // Products Task> GetProducts(Guid clientId, bool includeInactive = false); Task GetProductById(Guid productId); Task CreateProduct(Product product); Task UpdateProduct(Product product); /// Next sequential number for this client, e.g. 3 -> "PRD-0004" -- Sku is /// system-generated, never user-entered. Task GetNextProductSequence(Guid clientId); // Product detail page: stock-movement history (GRN-in, Sale-out, Return-out). Task> GetGrnItemsForProduct(Guid productId); Task> GetSaleItemsForProduct(Guid productId); Task> GetStockReturnsForProduct(Guid productId); // Suppliers Task> GetSuppliers(Guid clientId, bool includeInactive = false); Task GetSupplierById(Guid supplierId); Task CreateSupplier(Supplier supplier); // GRN Task CreateGrn(GoodsReceivedNote grn); Task> GetGrns(Guid clientId); Task GetGrnById(Guid grnId); /// Next sequential number for this client, e.g. 3 -> "GRN-0004". Task GetNextGrnSequence(Guid clientId); // Sales Task CreateSale(Sale sale); Task> GetSales(Guid clientId); Task GetSaleById(Guid saleId); Task GetNextSaleSequence(Guid clientId); // Returns Task CreateStockReturn(StockReturn stockReturn); Task> GetStockReturns(Guid clientId); Task GetStockReturnById(Guid stockReturnId); } }