Skip to main content

Conservation Entities

Entities for conservation programs, fish tagging, and program participation.

ConservationProgram

Purpose: Conservation programs (tagging, catch-and-release, etc.).

Key Fields:

  • Id (int): Unique identifier
  • ProgramName: Program name
  • Description: Program description
  • ProgramCode: Official program code
  • OrganizationName: Organization (DNR, NOAA, etc.)
  • OrganizationWebsite: Organization website
  • ContactEmail, ContactPhone: Contact information
  • ProgramType: Tagging, CatchAndRelease, HabitatRestoration, etc.
  • StateId: State-specific program
  • GeographicScope: Statewide, Regional, National
  • RequiresRegistration: Whether registration required
  • ProvidesTags: Whether provides tags for fish
  • RequiresReporting: Whether requires catch reporting
  • Instructions: Program instructions
  • IsActive: Whether program is active
  • StartDate, EndDate: Program dates

Relationships:

  • Many-to-one: State
  • One-to-many: ProgramParticipation, FishTag

Usage Patterns:

// Get active programs
var programs = context.ConservationPrograms
.Where(cp => cp.IsActive)
.Include(cp => cp.State)
.ToList();

// Get user's program participations
var participations = context.ProgramParticipations
.Where(pp => pp.UserId == userId)
.Include(pp => pp.ConservationProgram)
.ToList();

ProgramParticipation

Purpose: User participation in conservation programs.

Key Fields:

  • Id (int): Unique identifier
  • ConservationProgramId: Associated program
  • UserId: Participating user
  • RegisteredAt: Registration date
  • Status: Active, Completed, Inactive
  • TagsReceived: Number of tags received
  • TagsUsed: Number of tags used

Relationships:

  • Many-to-one: ConservationProgram, User

FishTag

Purpose: Fish tags for tagging programs.

Key Fields:

  • Id (int): Unique identifier
  • ConservationProgramId: Associated program
  • ProgramParticipationId: User participation
  • TagNumber: Tag number/identifier
  • TagType: External, Internal, PIT
  • IssuedAt: Issue date
  • AttachedToCatchId: Catch log entry tag was attached to
  • ReportedAt: When tag was reported

Relationships:

  • Many-to-one: ConservationProgram, ProgramParticipation, FishingLogEntry

TagReport

Purpose: Tag reports when tagged fish are recaptured.

Key Fields:

  • Id (int): Unique identifier
  • FishTagId: Reported tag
  • ReportedByUserId: User who reported
  • ReportedAt: Report date
  • RecaptureLocation: Recapture location
  • RecaptureLatitude, RecaptureLongitude: Coordinates
  • FishCondition: Fish condition at recapture
  • Notes: Report notes

Relationships:

  • Many-to-one: FishTag, User