Skip to main content

Boat Mounting Systems Documentation

Overview

The boat mounting system allows users to track track/rail systems installed on their boats and how equipment is mounted to these tracks. This includes T-Track, Unistrut, rail systems, and other mounting solutions.

Core Entity

BoatMountingTrack

Represents a mounting track/rail system installed on a boat.

Track Types:

  • TTrack: T-Track mounting system
  • Unistrut: Unistrut mounting system
  • RailSystem: Rail mounting system
  • TrackSystem: Generic track system (Traxstech, Cisco, etc.)
  • MountingTrack: Generic mounting track
  • RodHolderTrack: Track specifically for rod holders
  • AccessoryTrack: Track for accessories

Properties:

  • Location: PositionX, PositionY, PositionZ (3D position on boat)
  • Orientation: RotationX, RotationY, RotationZ (Euler angles)
  • Placement: PlacementLocation (e.g., "Port Side", "Starboard Side", "Stern")
  • Specifications: LengthFt, TrackSize, Material, SlotCount
  • Brand/Model: Brand, Model, BrandId

Equipment Types Added

Rod Holders

  • RodHolder: Generic rod holder
  • BankRodHolder: Rod holder for bank/shore fishing
  • BoatRodHolder: Rod holder for boat mounting
  • RodHolderTrack: Track system for rod holders

Bank Fishing Equipment

  • BankFishingLight: Light for bank/shore fishing
  • BankFishingBell: Bell for rod holder alerts
  • BankFishingStand: Stand for bank fishing
  • BankFishingChair: Chair for bank fishing
  • BankFishingUmbrella: Umbrella for shade
  • BankFishingCart: Cart for hauling gear to bank

Bells

  • Bell: Generic bell for tip-ups/rod holders (bite alarm)
  • RodHolderBell: Bell specifically for rod holders
  • TipUpBell: Bell for tip-ups

Mounting Systems

  • TTrack: T-Track mounting system
  • Unistrut: Unistrut mounting system
  • RailSystem: Rail mounting system
  • TrackSystem: Generic track system
  • MountingTrack: Generic mounting track
  • AccessoryTrack: Track for accessories

BoatEquipmentPlacement Enhancements

Added track mounting support to BoatEquipmentPlacement:

public int? MountingTrackId { get; set; } // Track this equipment is mounted to
public BoatMountingTrack? MountingTrack { get; set; }
public int? TrackPosition { get; set; } // Position/slot on the track (1-based)
public string? TrackMountType { get; set; } // e.g., "T-Bolt", "Slider", "Adapter"

Usage Examples

Installing a Track System

var track = new BoatMountingTrack
{
BoatId = boatId,
TrackType = BoatEquipmentType.TTrack,
Name = "Port Side T-Track",
Brand = "Traxstech",
Model = "TT-48",
LengthFt = 4.0f,
TrackSize = "1.5 inch",
Material = "Aluminum",
SlotCount = 8,
PositionX = -3.5f, // Port side (negative)
PositionY = 1.0f, // On gunnel
PositionZ = 0.0f, // Center
PlacementLocation = "Port Side",
Orientation = "Horizontal",
InstalledAt = DateTime.UtcNow,
IsPermanent = true,
MaxCapacity = 8
};

context.BoatMountingTracks.Add(track);
context.SaveChanges();

Mounting Equipment to a Track

var rodHolderPlacement = new BoatEquipmentPlacement
{
BoatId = boatId,
BoatEquipmentId = rodHolderEquipmentId,
PositionX = -3.5f,
PositionY = 1.0f,
PositionZ = 1.0f, // Forward on track
MountingTrackId = trackId,
TrackPosition = 2, // Second slot on track
TrackMountType = "T-Bolt",
MountingType = "Track Mount",
IsPermanent = false // Can be moved along track
};

context.BoatEquipmentPlacements.Add(rodHolderPlacement);
context.SaveChanges();

Bank Fishing Setup

// Create bank fishing equipment
var bankRodHolder = new BoatEquipment
{
UserId = userId,
EquipmentType = BoatEquipmentType.BankRodHolder,
Name = "Bank Rod Holder",
BrandId = brandId,
Make = "BankPro",
Model = "BH-200"
};

var bankBell = new BoatEquipment
{
UserId = userId,
EquipmentType = BoatEquipmentType.BankFishingBell,
Name = "Rod Holder Bell",
Make = "StrikeAlert",
Model = "SB-100"
};

var bankLight = new BoatEquipment
{
UserId = userId,
EquipmentType = BoatEquipmentType.BankFishingLight,
Name = "LED Bank Light",
Make = "NightPro",
Model = "NL-500",
PowerWatts = 50.0f
};

context.BoatEquipment.AddRange(bankRodHolder, bankBell, bankLight);
context.SaveChanges();

Querying Track-Mounted Equipment

// Get all equipment mounted on a specific track
var trackEquipment = context.BoatEquipmentPlacements
.Where(bep => bep.MountingTrackId == trackId)
.Include(bep => bep.BoatEquipment)
.OrderBy(bep => bep.TrackPosition)
.ToList();

// Get all tracks on a boat
var boatTracks = context.BoatMountingTracks
.Where(bmt => bmt.BoatId == boatId)
.Include(bmt => bmt.EquipmentPlacements)
.ThenInclude(bep => bep.BoatEquipment)
.ToList();

// Find available track positions
var track = context.BoatMountingTracks.FirstOrDefault(bmt => bmt.Id == trackId);
var usedPositions = context.BoatEquipmentPlacements
.Where(bep => bep.MountingTrackId == trackId && bep.TrackPosition.HasValue)
.Select(bep => bep.TrackPosition.Value)
.ToList();

var availablePositions = Enumerable.Range(1, track.MaxCapacity)
.Where(pos => !usedPositions.Contains(pos))
.ToList();

3D Visualization

Track Models

  • T-Track models (4ft, 6ft)
  • Unistrut track models
  • Rail system models
  • Generic mounting track models

Bank Fishing Models

  • Bank rod holders
  • Bank fishing lights
  • Bank fishing bells
  • Bank fishing stands
  • Bank fishing chairs
  • Bank fishing carts

Rod Holder Models

  • Standard rod holders
  • Bank rod holders
  • Boat rod holders

Benefits

  1. Track Management: Track all mounting systems on boats
  2. Equipment Organization: Know exactly where equipment is mounted
  3. Repositioning: Easy to move equipment along tracks
  4. Capacity Planning: Track how many slots are available
  5. Bank Fishing Support: Complete support for bank/shore fishing
  6. Bite Alerts: Bell systems for tip-ups and rod holders

Future Enhancements

  1. Track Templates: Pre-configured track layouts
  2. Equipment Compatibility: Check if equipment fits on track
  3. Visual Track Editor: Drag-and-drop equipment on tracks
  4. Track Marketplace: Share track configurations
  5. Installation Guides: Step-by-step track installation guides