Spot Entities
Entities for fishing spots, boat ramps, and location ratings.
FishingSpot
Purpose: Popular fishing spot/location with ratings and access information.
Key Fields:
Id(int): Unique identifierName: Spot nameDescription: Spot descriptionSpotType: Lake, River, Pier, Shore, Boat RampLatitude,Longitude: Location coordinatesAddress,City,StateName,ZipCode,Country: AddressWaterBodyName: Water body name (e.g., "Lake Michigan")StateId,FishingZoneId: Links to regulationsCreatedByUserId: User who created/contributed spotPopularSpecies: Popular fish speciesIsPublicAccess: Public access flagRequiresFee: Whether access requires feeAccessFee: Access fee amountAccessNotes: Access restrictions, parking infoHasParking,HasRestrooms,HasBoatRamp: FeaturesAverageRating: Average ratingRatingCount: Number of ratings
Relationships:
- Many-to-one: State, FishingZone, User (creator)
- One-to-many: SpotRating, SpotAccess
Usage Patterns:
// Create fishing spot
var spot = new FishingSpot
{{
Name = "Lake Michigan Pier",
SpotType = "Pier",
Latitude = 43.1234,
Longitude = -87.5678,
City = "Milwaukee",
StateName = "Wisconsin",
IsPublicAccess = true,
HasParking = true,
CreatedByUserId = userId
}};
// Get spots near location
var spots = context.FishingSpots
.Where(fs => fs.Latitude.HasValue && fs.Longitude.HasValue)
.ToList();
SpotRating
Purpose: User ratings and reviews for fishing spots.
Key Fields:
Id(int): Unique identifierFishingSpotId: Rated spotUserId: Rating userRating: Rating value (1-5)Comment: Rating commentAccessibilityRating: Accessibility ratingFishingQualityRating: Fishing quality ratingSafetyRating: Safety ratingCreatedAt: Rating timestamp
Relationships:
- Many-to-one: FishingSpot, User
Usage Patterns:
// Rate spot
var rating = new SpotRating
{{
FishingSpotId = spotId,
UserId = userId,
Rating = 5,
Comment = "Great spot for salmon!",
AccessibilityRating = 4,
FishingQualityRating = 5,
SafetyRating = 5,
CreatedAt = DateTime.UtcNow
}};
// Get spot ratings
var ratings = context.SpotRatings
.Where(sr => sr.FishingSpotId == spotId)
.Include(sr => sr.User)
.OrderByDescending(sr => sr.CreatedAt)
.ToList();
BoatRamp
Purpose: Boat ramp locations and information.
Key Fields:
Id(int): Unique identifierName: Ramp nameLocation: Ramp locationLatitude,Longitude: CoordinatesRampType: Single, Double, Triple laneFeeRequired: Whether fee is requiredFeeAmount: Fee amountParkingSpaces: Number of parking spacesTrailerSpaces: Number of trailer spacesHasDock: Whether has dockHasRestroom: Whether has restroomIsPublic: Public access flag
Relationships:
- Many-to-one: FishingSpot (optional)
SpotAccess
Purpose: Access information and restrictions for fishing spots.
Key Fields:
Id(int): Unique identifierFishingSpotId: Associated spotAccessType: Public, Private, RestrictedAccessNotes: Access detailsRestrictions: Access restrictionsHours: Operating hoursSeason: Seasonal access
Relationships:
- Many-to-one: FishingSpot
Related Documentation
- Regulations - Fishing regulations by location
- Reports - Fishing condition reports