Skip to main content

Boat Entities

Entities for boat tracking, equipment management, and 3D visualization.

Boat

Purpose: User's boat with full specifications.

Key Fields:

  • Id (int): Unique identifier
  • UserId: Boat owner
  • Name: User-friendly name (e.g., "The Reel Deal")
  • Make, Model, Year: Boat identification
  • BrandId: Optional brand reference
  • BoatStyle: Center Console, Bass Boat, etc.
  • BoatStyleModelId: Reference to 3D model
  • LengthFt, BeamFt, DraftFt: Dimensions
  • WeightLb: Boat weight
  • Capacity: Passenger capacity
  • MaxHp: Maximum horsepower
  • HullMaterial: Hull material
  • HullColor: Hull color
  • SerialNumber: Hull serial number
  • EngineMake, EngineModel, EngineHp, EngineYear: Engine details
  • EngineHours: Engine hours
  • RegistrationNumber: Registration number
  • RegistrationExpiration: Registration expiration
  • InsurancePolicyNumber: Insurance policy number
  • InsuranceExpiration: Insurance expiration
  • Condition: Current condition status

Relationships:

  • Many-to-one: User, Brand (optional), BoatStyleModel (optional)
  • One-to-many: BoatEquipment, BoatEquipmentPlacement, BoatOwnershipHistory, FishingSession

Usage Patterns:

// Create boat
var boat = new Boat
{{
UserId = userId,
Name = "The Reel Deal",
Make = "Lund",
Model = "Pro-V 1875",
Year = 2020,
LengthFt = 18.75m,
BoatStyle = BoatStyle.BassBoat,
Condition = BoatCondition.Excellent
}};

// Get user's boats
var boats = context.Boats
.Where(b => b.UserId == userId)
.Include(b => b.Equipment)
.Include(b => b.EquipmentPlacements)
.ToList();

BoatEquipment

Purpose: Equipment that can be mounted on a boat.

Key Fields:

  • Id (int): Unique identifier
  • BoatId: Associated boat (optional - can be generic)
  • EquipmentType: Livescope, CannonBall, Battery, etc.
  • Name: Equipment name
  • Make, Model: Equipment identification
  • BrandId: Optional brand reference
  • Power, Voltage, Capacity: Power specifications
  • Weight, Depth, ScreenSize: Physical specifications
  • Frequency: Frequency (for electronics)
  • IsActive: Whether equipment is active

Relationships:

  • Many-to-one: Boat (optional), Brand (optional)
  • One-to-many: BoatEquipmentPlacement, EquipmentModel

BoatEquipmentPlacement

Purpose: 3D placement of equipment on a boat.

Key Fields:

  • Id (int): Unique identifier
  • BoatId: Associated boat
  • BoatEquipmentId: Placed equipment
  • X, Y, Z: 3D coordinates
  • RotationX, RotationY, RotationZ: Rotations
  • MountingTrackId: Associated mounting track
  • PlacementNotes: Placement notes

Relationships:

  • Many-to-one: Boat, BoatEquipment, BoatMountingTrack (optional)

BoatMountingTrack

Purpose: Mounting track systems on boats (T-Track, Unistrut, etc.).

Key Fields:

  • Id (int): Unique identifier
  • BoatId: Associated boat
  • TrackType: TTrack, Unistrut, RailSystem, etc.
  • TrackName: Track name
  • StartX, StartY, StartZ: Start coordinates
  • EndX, EndY, EndZ: End coordinates
  • LengthInches: Track length

Relationships:

  • Many-to-one: Boat
  • One-to-many: BoatEquipmentPlacement

BoatModel

Purpose: Boat model information.

Key Fields:

  • Id (int): Unique identifier
  • BoatManufacturerId: Associated manufacturer
  • ModelName: Model name
  • ModelYear: Model year
  • BoatStyle: Boat style
  • LengthFt, BeamFt: Dimensions
  • Specifications: Model specifications (JSON)

Relationships:

  • Many-to-one: BoatManufacturer
  • One-to-many: BoatStyleModel

BoatManufacturer

Purpose: Boat manufacturer/brand.

Key Fields:

  • Id (int): Unique identifier
  • ManufacturerName: Manufacturer name
  • Country: Country of origin
  • Website: Manufacturer website
  • IsActive: Whether manufacturer is active

Relationships:

  • One-to-many: BoatModel, Boat

BoatStyleModel

Purpose: Generic 3D models by boat style.

Key Fields:

  • Id (int): Unique identifier
  • BoatStyle: Boat style
  • ThreeJsModelId: Associated 3D model
  • DefaultLengthFt: Default length
  • DefaultBeamFt: Default beam

Relationships:

  • Many-to-one: ThreeJsModel

BoatOwnershipHistory

Purpose: Boat ownership history.

Key Fields:

  • Id (int): Unique identifier
  • BoatId: Associated boat
  • PreviousOwnerUserId: Previous owner
  • CurrentOwnerUserId: Current owner
  • TransferDate: Transfer date
  • TransferType: Sale, Gift, etc.

Relationships:

  • Many-to-one: Boat, User (previous and current owner)