| 0001 | Initial project setup with Court and Booking models |
| 0002 | Added Product and Sale models for POS functionality |
| 0003 | Added total price field to Booking model |
| 0004 | Added settled status tracking for bookings |
| 0005 | Added CashierClose model for end-of-day closing reports |
| 0006 | Added CashierCloseSaleItem for archiving sale items per close |
| 0007 | Added CourtPricing model for configurable court rates |
| 0008 | Added payment method tracking (cash/card) to Sales and Close items |
| 0009 | Added card last 4 digits storage for card payments |
| 0010 | Added card last 4 digits to CashierCloseSaleItem |
| 0011 | Added product type classification (inventory vs service) |
| 0012 | Added product icon support |
| 0013 | Added notes field to CashierCloseSaleItem and Sale models |
| 0014 | Added court type field (pickleball, basketball, futsal) |
| 0015 | Added basketball and futsal half-hour rate to CourtPricing |
| 0016 | Added cashier user tracking to Sale model |
| 0017 | Added cashier username to CashierCloseSaleItem |
| 0018 | Added cashier username to CashierClose model |
| 0019 | Added StockLog model for inventory adjustment audit trail |
| 0020 | Added unlimited booking session support |
| 0021 | Added cancellation reason and cancelled status to Booking |
| 0022 | Added cancelled bookings JSON to CashierClose for reporting |
| 0023 | Added total cancellations field to CashierClose |
| 0024 | Added BookingCounter and sequential booking ID system |
| 0025 | Added settled bookings JSON to CashierClose for close reports |
| 0026 | Added month/year filter to Cashier Close History - Monthly Sales Summary |
| 0027 | Added month/year filter to Cashier Close History - All Closing Records |
| 0028 | Added month/year filter to Cancellation History |
| 0029 | Added sale receipt printing functionality |
| 0030 | Added booking receipt printing functionality |
| 0031 | Added booking cancellation receipt printing functionality |
| 0032 | Added public booking settings and auto-cancel configuration |
| 0033 | Added public booking refresh seconds configuration |
| 0034 | Updated public booking court relation and display logic |
| 0035 | Finalized public court booking changes and data migration support |
| 0036 | Added temporary court pricing method placeholder field |
| 0037 | Removed pricing method field and refactored rate storage |
| 0038 | Implemented day/night pricing with dual court rates and booking estimation |
| 0039 | Added cancellation reason and status tracking to PublicBooking |
| 0040 | Added online booking totals (ob_total, ob_paid, ob_unpaid) to CashierClose for closing reports |
| 0041 | Added permanent is_paid flag to PublicBooking — stamped at cashier close based on today's settled sales |
| 0042 | Added OTP email verification for public bookings with configurable expiration time |
| 0043 | Changed advance booking limit from hours to days across model, settings, validation, and public calendar |