Skip to content

Class: DemandSignal

A signal representing demand for a category of items. Covers standing interests, time-bounded campaigns, and specific beneficiary requests under a single unified model.

URI: inkind_knowledge_repo:DemandSignal

 classDiagram
    class DemandSignal
    click DemandSignal href "../DemandSignal/"
      DemandSignal : attributes





        DemandSignal --> "0..1" AnyValue : attributes
        click AnyValue href "../AnyValue/"



      DemandSignal : campaign





        DemandSignal --> "0..1" Campaign : campaign
        click Campaign href "../Campaign/"



      DemandSignal : category





        DemandSignal --> "1" CategoryEnum : category
        click CategoryEnum href "../CategoryEnum/"



      DemandSignal : context_note

      DemandSignal : deadline

      DemandSignal : holder

      DemandSignal : id

      DemandSignal : lifecycle_state





        DemandSignal --> "1" DemandSignalLifecycleEnum : lifecycle_state
        click DemandSignalLifecycleEnum href "../DemandSignalLifecycleEnum/"



      DemandSignal : org





        DemandSignal --> "1" SocialOrganisation : org
        click SocialOrganisation href "../SocialOrganisation/"



      DemandSignal : public_visibility

      DemandSignal : quantity_fulfilled

      DemandSignal : quantity_requested

      DemandSignal : registered_at

      DemandSignal : signal_type





        DemandSignal --> "1" DemandSignalTypeEnum : signal_type
        click DemandSignalTypeEnum href "../DemandSignalTypeEnum/"



      DemandSignal : urgency_tier





        DemandSignal --> "0..1" UrgencyTierEnum : urgency_tier
        click UrgencyTierEnum href "../UrgencyTierEnum/"



Slots

Name Cardinality and Range Description Inheritance
id 1
Uriorcurie
A unique identifier for the entity direct
org 1
SocialOrganisation
Reference to the owning SocialOrganisation direct
signal_type 1
DemandSignalTypeEnum
Discriminator — standing (permanent interest), campaign (time-bounded), or sp... direct
category 1
CategoryEnum
Type-defining slot on DonationItem direct
attributes 0..1
AnyValue
Category-specific demand attribute filters direct
quantity_requested 0..1
Integer
Target quantity direct
quantity_fulfilled 1
Integer
Items matched to this signal — derived at runtime direct
campaign 0..1
Campaign
FK to Campaign — set only for campaign signal_type direct
holder 0..1
String
FK reference to Beneficiary or SocialOrganisation — used for specific signa... direct
context_note 0..1
String
Human-readable context note, e direct
deadline 0..1
Date
Deadline for fulfilment direct
urgency_tier 0..1
UrgencyTierEnum
Urgency classification direct
lifecycle_state 1
DemandSignalLifecycleEnum
Current lifecycle state of the entity direct
registered_at 1
Datetime
Timestamp when this demand signal was registered direct
public_visibility 1
Boolean
Whether to expose this signal on the public API and Donor Portal direct

Usages

used by used in type used
Campaign signals range DemandSignal

See Also

Identifier and Mapping Information

Schema Source

  • from schema: https://inkind-at.github.io/inkind-knowledge-repo

Mappings

Mapping Type Mapped Value
self inkind_knowledge_repo:DemandSignal
native inkind_knowledge_repo:DemandSignal

LinkML Source

Direct

name: DemandSignal
description: A signal representing demand for a category of items.  Covers standing
  interests, time-bounded campaigns, and specific beneficiary requests under a single
  unified model.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- schema:Demand
slots:
- id
- org
- signal_type
- category
- attributes
- quantity_requested
- quantity_fulfilled
- campaign
- holder
- context_note
- deadline
- urgency_tier
- lifecycle_state
- registered_at
- public_visibility
slot_usage:
  org:
    name: org
    range: SocialOrganisation
    required: true
  category:
    name: category
    see_also:
    - openeligibility:ServiceTag
    range: CategoryEnum
    required: true
  lifecycle_state:
    name: lifecycle_state
    range: DemandSignalLifecycleEnum
    required: true
  urgency_tier:
    name: urgency_tier
    see_also:
    - openeligibility:HumanSituation
    range: UrgencyTierEnum
    required: false

Induced

name: DemandSignal
description: A signal representing demand for a category of items.  Covers standing
  interests, time-bounded campaigns, and specific beneficiary requests under a single
  unified model.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- schema:Demand
slot_usage:
  org:
    name: org
    range: SocialOrganisation
    required: true
  category:
    name: category
    see_also:
    - openeligibility:ServiceTag
    range: CategoryEnum
    required: true
  lifecycle_state:
    name: lifecycle_state
    range: DemandSignalLifecycleEnum
    required: true
  urgency_tier:
    name: urgency_tier
    see_also:
    - openeligibility:HumanSituation
    range: UrgencyTierEnum
    required: false
attributes:
  id:
    name: id
    description: A unique identifier for the entity.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    slot_uri: schema:identifier
    identifier: true
    alias: id
    owner: DemandSignal
    domain_of:
    - NamedThing
    - SocialOrganisation
    - Actor
    - StorageLocation
    - DonationSource
    - DonationCollection
    - DonationItem
    - DemandSignal
    - Campaign
    - ProvenanceRecord
    range: uriorcurie
    required: true
  org:
    name: org
    description: Reference to the owning SocialOrganisation. Concrete range applied
      via slot_usage in each class.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: org
    owner: DemandSignal
    domain_of:
    - Actor
    - StorageLocation
    - DonationCollection
    - DemandSignal
    - Campaign
    - ProvenanceRecord
    range: SocialOrganisation
    required: true
  signal_type:
    name: signal_type
    description: Discriminator — standing (permanent interest), campaign (time-bounded),
      or specific (concrete beneficiary request).
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: signal_type
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: DemandSignalTypeEnum
    required: true
  category:
    name: category
    annotations:
      label_en:
        tag: label_en
        value: Item Type
      label_de:
        tag: label_de
        value: Artikeltyp
    description: Type-defining slot on DonationItem. Value is the class URI of the
      concrete subclass (e.g. inkind_knowledge_repo:ClothingItem). linkml-validate,
      gen-json-schema, and gen-pydantic all use this slot to dispatch to the correct
      subclass schema and valid slot set. For other entities (DemandSignal, StorageLocation)
      the range is overridden via slot_usage to CategoryEnum.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    see_also:
    - openeligibility:ServiceTag
    rank: 1000
    slot_uri: schema:additionalType
    alias: category
    owner: DemandSignal
    domain_of:
    - DonationItem
    - DemandSignal
    range: CategoryEnum
    required: true
  attributes:
    name: attributes
    description: 'Category-specific demand attribute filters. Structure mirrors the
      attribute vocabulary defined in the category schema for the given category value.
      Phase 2 refactor: replace Any with typed ItemAttributes subclass hierarchy,
      moving category mixin slots into *Attributes classes shared between DonationItem
      and DemandSignal.'
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: attributes
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: AnyValue
  quantity_requested:
    name: quantity_requested
    description: Target quantity.  Null = any amount welcome (standing signals have
      no target).
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: quantity_requested
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: integer
  quantity_fulfilled:
    name: quantity_fulfilled
    description: Items matched to this signal — derived at runtime.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: quantity_fulfilled
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: integer
    required: true
  campaign:
    name: campaign
    description: FK to Campaign — set only for `campaign` signal_type.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: campaign
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: Campaign
  holder:
    name: holder
    description: FK reference to Beneficiary or SocialOrganisation — used for `specific`
      signal_type.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: holder
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: string
  context_note:
    name: context_note
    description: Human-readable context note, e.g. "Back to school for 30 primary
      school children".
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: context_note
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: string
  deadline:
    name: deadline
    description: Deadline for fulfilment.  Null for standing signals.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: deadline
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: date
  urgency_tier:
    name: urgency_tier
    description: Urgency classification.  Null for standing signals; set for campaign
      and specific types.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    see_also:
    - openeligibility:HumanSituation
    rank: 1000
    alias: urgency_tier
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: UrgencyTierEnum
    required: false
  lifecycle_state:
    name: lifecycle_state
    description: Current lifecycle state of the entity. Concrete enum range applied
      via slot_usage. Transitions enforced by Django model clean().
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: lifecycle_state
    owner: DemandSignal
    domain_of:
    - DonationSource
    - DonationCollection
    - DonationItem
    - DemandSignal
    - Campaign
    range: DemandSignalLifecycleEnum
    required: true
  registered_at:
    name: registered_at
    description: Timestamp when this demand signal was registered.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: registered_at
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: datetime
    required: true
  public_visibility:
    name: public_visibility
    description: Whether to expose this signal on the public API and Donor Portal.
    from_schema: https://inkind-at.github.io/inkind-knowledge-repo
    rank: 1000
    alias: public_visibility
    owner: DemandSignal
    domain_of:
    - DemandSignal
    range: boolean
    required: true