Skip to content

Active hours cannot express a time range, only a moment #808

Description

@hokiepokedad2

A profile's active hours can only express single moments in PoracleWeb.NET. PoracleNG has supported ranges the whole time: an entry carries step, end_hours and end_mins, and step > 0 makes it a range that fires every step hours between start and end.

So "switch to this profile at 08:00" is expressible here and "keep this profile active from 08:00 to 17:00" is not, even though the bot can set exactly that with !settime weekday:9-17/2. A user who sets a range through the bot then opens this UI sees a schedule it cannot represent, which is worse than not offering it.

What to build

  • step, end_hours and end_mins on the model, the validator and the parser.
  • Range entries in ActiveHoursEditorDialogComponent. The existing day picker and presets carry over; the time picker gains an end and a repeat interval.
  • ActiveHoursChipComponent needs a range form. PoracleNG renders these as <day> HH:MM-HH:MM/N; the chips should read as naturally as the single-fire ones do now, not fall back to the wire format.
  • The weekly preview grid should show a range as a span, which is the clearest argument for building this at all.
  • Round-trip a bot-set range without altering it. That is the regression test worth writing first.

Day numbering

The scheduler uses ISO weekdays, Monday 1 through Sunday 7, and ValidateActiveHours already enforces 1-7 correctly. Do not take the numbering from the v2 OpenAPI schema, which is wrong — see the separate issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions