https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43492 Bug ID: 43492 Summary: Normalize library opening hours into a dedicated library_opening_hours table Initiative type: --- Sponsorship --- status: Product: Koha Version: Main Hardware: All OS: All Status: NEW Severity: enhancement Priority: P5 - low Component: Architecture, internals, and plumbing Assignee: koha-bugs@lists.koha-community.org Reporter: martin.renvoize@openfifth.co.uk QA Contact: testopia@bugs.koha-community.org Target Milestone: --- Library opening hours (Bug 6796) are stored in a single library_hours table with a composite (library_id, day) primary key: exactly one row per weekday per library. This makes it structurally impossible to record more than one opening/closing pair per day (Bug 37616, Bug 37708), and there is no way to represent hours that open on one day and don't close again until a later day (raised as a concern on Bug 36596 against a simple "open and close must always be set together" rule). The Koha::Library::Hour(s) object classes are empty shims with no validation, and there is no relationship at all between these hours and the library Calendar (weekly/repeating/single closures, Bug 42310/42314/42311), which is the underlying problem in Bug 36079. This is the first of a small dependent series that replaces library_hours with a normalized model. This bug covers the schema and object layer: - A new library_opening_hours table, allowing any number of rows per (library, weekday), with an explicit closes_opening_id self-reference so a slot that opens on one day and doesn't close until a later day is represented as two clearly linked rows rather than by guesswork or an offset column. - A new OPENING_HOURS_TYPE authorised value category (seeded with a reserved GENERAL value) so hours can be grouped by what they're for (Bug 37708), reusing Koha's existing authorised values admin screen rather than a bespoke vocabulary. - A Koha::Library::OpeningHours facade (mirroring Koha::Library::Calendar) providing validated CRUD and interval resolution. Migration of existing library_hours data to type GENERAL is included. Follow-up bugs build the Koha::Library accessor and Calendar linkage, REST API, circulation integration, and the admin interface on top of this. -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.