Skip to content

Add Trigger RELATED parameter support - #40

Merged
kozw merged 2 commits into
mainfrom
issue-39-trigger-related
Jul 7, 2026
Merged

Add Trigger RELATED parameter support#40
kozw merged 2 commits into
mainfrom
issue-39-trigger-related

Conversation

@kozw

@kozw kozw commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • add explicit TriggerRelated enum (START / END) support
  • expose related and relatedName on Trigger
  • parse and validate TRIGGER;RELATED=... in parseTrigger
  • validate duplicate RELATED parameters and reject invalid values
  • add tests for parser behavior and VALARM integration

Why

Issue #39 requested first-class access to TRIGGER RELATED metadata instead of requiring manual property inspection.

Validation

  • dart analyze --fatal-infos
  • dart test

Closes #39

Expose TRIGGER RELATED metadata on Trigger, parse and validate RELATED values, and add regression coverage for parser and VALARM integration.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 7, 2026 21:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds first-class support for RFC 5545 TRIGGER’s RELATED parameter in the semantic layer, so consumers can access whether a duration trigger is relative to an alarm component’s start or end without inspecting raw property parameters (Issue #39).

Changes:

  • Introduces TriggerRelated (start / end) plus name conversion helpers.
  • Extends Trigger to expose related and relatedName, and updates equality/hash.
  • Updates parseTrigger to parse/validate RELATED and adds semantic + end-to-end tests covering VALARM parsing.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/semantic/property_parser_test.dart Adds unit tests for parsing/validation of TRIGGER;RELATED=....
test/semantic/end_to_end_test.dart Verifies VALARM example parses TRIGGER;RELATED=END into semantic Trigger metadata.
test/semantic/calendar_types_test.dart Asserts Trigger stores the RELATED metadata on construction.
lib/src/semantic/property_parsers.dart Parses RELATED in parseTrigger and adds shared single-parameter validation helper.
lib/src/semantic/calendar_types.dart Extends Trigger model to carry RELATED metadata and include it in equality/hash.
lib/src/semantic/calendar_enums.dart Adds TriggerRelated enum + name parsing/toName utilities.

Comment on lines 354 to 356
final valueType =
property.parameters['VALUE']?.first ?? ValueTypeNames.duration;
if (valueType == ValueTypeNames.duration) {
Comment on lines 363 to +367
} else if (valueType == ValueTypeNames.dateTime) {
final dateTime = parseCalDateTimeUtc(property);
return Trigger.dateTime(dateTime);
return Trigger.dateTime(
dateTime,
related: related,
Reject duplicate VALUE parameters and disallow RELATED for DATE-TIME triggers in parseTrigger, with regression tests.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@kozw

kozw commented Jul 7, 2026

Copy link
Copy Markdown
Owner Author

@copilot review

Copilot AI commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

@copilot review

Addressed in fc6c0c0: parseTrigger now rejects duplicate VALUE parameters and rejects RELATED on VALUE=DATE-TIME, with regression tests covering both cases.

Copilot finished work on behalf of kozw July 7, 2026 21:13
@kozw
kozw merged commit 73d0751 into main Jul 7, 2026
2 checks passed
@kozw
kozw deleted the issue-39-trigger-related branch July 7, 2026 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Related on Trigger

3 participants