Skip to content

Add structured distinguishing features to pet reports #18

Description

@ismailbarankarasu

Background

Breed and color are often not enough to distinguish similar-looking animals. Community feedback highlighted useful details such as unusual fur patterns, tail shape, teeth, scars, markings, and temperament.

Goal

Allow report owners to describe structured distinguishing features that improve manual identification and can later support smarter matching.

Proposed Feature Set

Support optional information such as:

  • distinctive markings or coat patterns;
  • scars or other permanent identifiers;
  • tail characteristics;
  • ear characteristics;
  • notable dental features;
  • temperament/behavior notes;
  • other identifying details.

Contributors should propose whether this is best represented by dedicated fields, a value object, or a small structured collection. Avoid introducing an unbounded schema or duplicating existing breed/color/gender properties.

Expected API Behavior

  • Accept distinguishing features during report creation.
  • Support them in the existing edit flow, if available.
  • Return them in owner and public detail responses.
  • Keep all fields optional for backward compatibility.
  • Apply sensible validation and length limits.

Architecture Guidance

  • Domain owns the model and invariants.
  • Application owns request validation and response mapping.
  • Persistence owns EF Core configuration and migration.
  • API controllers should only pass requests to the application layer.
  • Matching-score changes are not part of this issue.

Acceptance Criteria

  • Distinguishing features can be stored with a pet report.
  • Existing reports remain valid.
  • Values are returned by the relevant detail endpoints.
  • Text inputs have documented maximum lengths.
  • Empty or whitespace-only values are normalized or rejected consistently.
  • No existing matching weights or scores change.
  • Automated tests cover persistence, validation, and response mapping.
  • Existing tests continue to pass.
  • dotnet build RescueLink.slnx succeeds.
  • dotnet test RescueLink.slnx succeeds.

Out of Scope

  • Image recognition
  • Medical records
  • Ownership verification
  • Changes to the automatic matching algorithm
  • Frontend implementation unless agreed separately

Before Starting

Please review the existing PetReport model and propose the smallest useful data model, migration, validation rules, and test plan before coding.

Origin

This issue comes from community feedback that teeth, markings, scars, tail shape, and temperament can distinguish animals that otherwise look very similar.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions