Class: WhittakerTech::Aeon::ResolvedOccurrence

Inherits:
Struct
  • Object
show all
Defined in:
app/services/whittaker_tech/aeon/resolved_occurrence.rb

Overview

Immutable value object returned by Resolver. Represents a single occurrence with overrides already applied — the caller sees the effective temporal reality, not the raw projections.

This is deliberately NOT an ActiveRecord model. Facts should not feel editable.

Instance Attribute Summary collapse

Instance Attribute Details

#allocation_idString

UUID of the owning allocation

Returns:

  • (String)

    the current value of allocation_id



19
20
21
# File 'app/services/whittaker_tech/aeon/resolved_occurrence.rb', line 19

def allocation_id
  @allocation_id
end

#ends_atTime

effective end (replacement if overridden)

Returns:

  • (Time)

    the current value of ends_at



19
20
21
# File 'app/services/whittaker_tech/aeon/resolved_occurrence.rb', line 19

def ends_at
  @ends_at
end

#occurrence_idString

UUID of the base occurrence

Returns:

  • (String)

    the current value of occurrence_id



19
20
21
# File 'app/services/whittaker_tech/aeon/resolved_occurrence.rb', line 19

def occurrence_id
  @occurrence_id
end

#overriddenBoolean

true if a replacement override was applied

Returns:

  • (Boolean)

    the current value of overridden



19
20
21
# File 'app/services/whittaker_tech/aeon/resolved_occurrence.rb', line 19

def overridden
  @overridden
end

#schedulable_labelString

schedule label (“time_slot”, etc.)

Returns:

  • (String)

    the current value of schedulable_label



19
20
21
# File 'app/services/whittaker_tech/aeon/resolved_occurrence.rb', line 19

def schedulable_label
  @schedulable_label
end

#starts_atTime

effective start (replacement if overridden)

Returns:

  • (Time)

    the current value of starts_at



19
20
21
# File 'app/services/whittaker_tech/aeon/resolved_occurrence.rb', line 19

def starts_at
  @starts_at
end

#stateString

occurrence state enum value (“active”)

Returns:

  • (String)

    the current value of state



19
20
21
# File 'app/services/whittaker_tech/aeon/resolved_occurrence.rb', line 19

def state
  @state
end