Implement a Book class for a bookstore inventory system:
bookID (int): Unique identifier.title (std::string): Title of the book.price (double): Price per single copy.stock (int): Available inventory copies.Book(int id, std::string t, double p, int s).purchase(int quantity):quantity > 5, print error "[!] Bulk purchase limit exceeded (Max 5 copies per transaction)" and return false.quantity > stock, print error "[!] Insufficient stock available" and return false.quantity <= 0, print error "[!] Invalid purchase quantity" and return false.stock -= quantity, print confirmation and total cost, and return true.display() const: Prints book ID, title, unit price, and current stock.Book objects representing store catalog.=== BytesLab Bookstore Inventory === [*] Initial Catalog: ID: 1 | Title: The C++ Programming Language | Price: $59.99 | Stock: 10 ID: 2 | Title: Design Patterns Explained | Price: $45.00 | Stock: 4 ID: 3 | Title: Clean Architecture | Price: $39.50 | Stock: 15 [*] Processing Transactions: [✓] Purchased 3 copy(ies) of 'The C++ Programming Language' | Total: $179.97 | Remaining Stock: 7 [!] Bulk purchase limit exceeded (Max 5 copies per transaction). Requested: 6 [!] Insufficient stock for 'Design Patterns Explained'. Requested: 5, In Stock: 4 [✓] Purchased 2 copy(ies) of 'Design Patterns Explained' | Total: $90.00 | Remaining Stock: 2 [*] Updated Catalog After Transactions: ID: 1 | Title: The C++ Programming Language | Price: $59.99 | Stock: 7 ID: 2 | Title: Design Patterns Explained | Price: $45.00 | Stock: 2 ID: 3 | Title: Clean Architecture | Price: $39.50 | Stock: 15 [✓] Book inventory transaction rules verified (Time: 0.008s, Memory: 2.1 MB)