Skip to main content

Report Entities

Entities for fishing condition reports and community reports.

FishingReport

Purpose: Public fishing report (community reports) sharing fishing conditions and experiences.

Key Fields:

  • Id (int): Unique identifier
  • UserId: Report author
  • Title: Report title
  • ReportText: Report content
  • Latitude, Longitude: Report location
  • LocationName: Location name (e.g., "Lake Michigan - Port Washington")
  • SpotId: Link to FishingSpot
  • StateId: Link to State
  • ReportDate: Report date
  • FishingDate: Date fishing occurred
  • SpeciesCaught: Comma-separated species
  • BaitUsed: Bait/lures used
  • TechniquesUsed: Techniques used
  • IsPublic: Public report flag
  • IsFeatured: Featured report flag
  • HelpfulCount: Helpful votes
  • ViewCount: View count

Relationships:

  • Many-to-one: User, FishingSpot, State
  • One-to-one: ReportConditions
  • One-to-many: ReportRating

Usage Patterns:

// Create fishing report
var report = new FishingReport
{{
UserId = userId,
Title = "Great salmon fishing today",
ReportText = "Caught 3 chinook salmon trolling...",
Latitude = 43.1234,
Longitude = -87.5678,
LocationName = "Lake Michigan - Port Washington",
ReportDate = DateTime.UtcNow,
IsPublic = true
}};

// Get recent reports
var reports = context.FishingReports
.Where(fr => fr.IsPublic)
.Include(fr => fr.User)
.Include(fr => fr.Spot)
.OrderByDescending(fr => fr.ReportDate)
.Take(20)
.ToList();

ReportConditions

Purpose: Detailed fishing conditions for reports.

Key Fields:

  • Id (int): Unique identifier
  • FishingReportId: Associated report
  • WaterTempF: Water temperature
  • AirTempF: Air temperature
  • WindSpeedMph: Wind speed
  • WindDirection: Wind direction
  • SkyConditions: Clear, PartlyCloudy, Overcast
  • WaterClarity: Clear, Stained, Muddy
  • WaterLevel: Normal, High, Low

Relationships:

  • Many-to-one: FishingReport (one-to-one)

ReportRating

Purpose: User ratings for fishing reports (helpful/not helpful).

Key Fields:

  • Id (int): Unique identifier
  • FishingReportId: Rated report
  • UserId: Rating user
  • IsHelpful: Whether report was helpful
  • CreatedAt: Rating timestamp

Relationships:

  • Many-to-one: FishingReport, User