Skip to main content

Line Spooling System Documentation

Overview

The line spooling system allows users to create complex multi-segment line configurations on their reels. This is essential for techniques like Great Lakes salmon trolling where you might have:

  • Backer line (braid)
  • Main line (copper or lead core)
  • Leader (mono or fluoro)

Entities

ReelSpooling

The complete spooling configuration for a reel. Can be associated with a GearSetup or standalone Reel.

LineSegment

Represents a single segment of line on the reel (backer, main, leader, etc.). Segments are ordered by Position (1 = bottom/backer).

LineSegmentConnection

Tracks the knot used to connect two line segments together.

Knot

Normalized knot entity with educational resources (videos, images, instructions).

Example: Great Lakes Salmon Setup

Setup Configuration

ReelSpooling: "Great Lakes Salmon - 300ft Copper"

  • Total Capacity: ~400 yards
  • Spooled: 2024-01-15

Segments (from bottom to top):

  1. Segment 1 (Position 1, Placement: Backer)

    • Type: BraidVariant
    • 50# braid, 100 yards
    • Color: Green
    • Notes: "Backer line - fills bottom of spool"
  2. Segment 2 (Position 2, Placement: Main)

    • Type: CopperCoreVariant
    • 45# copper, 300 feet
    • Color: Copper
    • Notes: "Main trolling line - sinks ~20ft per 100ft"
    • Connection: Albright Knot (connects to backer)
  3. Segment 3 (Position 3, Placement: Leader)

    • Type: MonofilamentVariant
    • 25# mono, 20 feet
    • Color: Clear
    • Notes: "Leader - connects to copper"
    • Connection: Double Uni Knot (connects to copper)

Usage Examples

Creating a Reel Spooling

// Create reel spooling
var spooling = new ReelSpooling
{
GearSetupId = gearSetupId,
Name = "Great Lakes Salmon - 300ft Copper",
Description = "300ft of 45# copper with 100yd 50# braid backer and 20ft 25# mono leader",
TotalCapacityYards = 400,
CapacityUsedPercent = 95,
SpooledAt = DateTime.UtcNow,
SpooledByUserId = userId,
Condition = SpoolingCondition.New
};

// Add backer segment
var backerSegment = new LineSegment
{
ReelSpoolingId = spooling.Id,
Position = 1,
Placement = LineSegmentPlacement.Backer,
BraidVariantId = braidVariantId,
LengthYards = 100,
Notes = "Backer line"
};

// Add copper segment
var copperSegment = new LineSegment
{
ReelSpoolingId = spooling.Id,
Position = 2,
Placement = LineSegmentPlacement.Main,
CopperCoreVariantId = copperVariantId,
LengthFeet = 300,
Notes = "Main trolling line"
};

// Add leader segment
var leaderSegment = new LineSegment
{
ReelSpoolingId = spooling.Id,
Position = 3,
Placement = LineSegmentPlacement.Leader,
MonofilamentVariantId = monoVariantId,
LengthYards = 6.67f, // 20 feet
Notes = "Leader"
};

// Add connections (knots)
var albrightKnot = context.Knots.FirstOrDefault(k => k.Name == "Albright Knot");
var connection1 = new LineSegmentConnection
{
LineSegmentId = copperSegment.Id,
KnotId = albrightKnot.Id,
Position = ConnectionPosition.Bottom,
Notes = "Connects copper to braid backer"
};

var doubleUniKnot = context.Knots.FirstOrDefault(k => k.Name == "Double Uni");
var connection2 = new LineSegmentConnection
{
LineSegmentId = leaderSegment.Id,
KnotId = doubleUniKnot.Id,
Position = ConnectionPosition.Bottom,
Notes = "Connects leader to copper"
};

Querying a Setup

// Get complete spooling with all segments and knots
var spooling = context.ReelSpoolings
.Include(rs => rs.Segments)
.ThenInclude(ls => ls.MonofilamentVariant)
.Include(rs => rs.Segments)
.ThenInclude(ls => ls.BraidVariant)
.Include(rs => rs.Segments)
.ThenInclude(ls => ls.CopperCoreVariant)
.Include(rs => rs.Segments)
.ThenInclude(ls => ls.Connections)
.ThenInclude(lsc => lsc.Knot)
.FirstOrDefault(rs => rs.Id == spoolingId);

// Display setup
foreach (var segment in spooling.Segments.OrderBy(s => s.Position))
{
Console.WriteLine($"Position {segment.Position}: {segment.Placement}");
Console.WriteLine($" Type: {GetSegmentType(segment)}");
Console.WriteLine($" Length: {segment.LengthYards}yd / {segment.LengthFeet}ft");

// Show connection/knot
var connection = segment.Connections.FirstOrDefault(c => c.Position == ConnectionPosition.Top);
if (connection != null)
{
Console.WriteLine($" Connected with: {connection.Knot.Name}");
}
}

Finding Knots for Line Types

// Find knots suitable for braid to mono
var braidToMonoKnots = context.Knots
.Where(k => k.IsForBraidToMono || k.IsForLineToLine)
.OrderByDescending(k => k.StrengthPercent)
.ToList();

// Find knots for attaching leaders
var leaderKnots = context.Knots
.Where(k => k.IsForLineToLeader)
.OrderBy(k => k.Difficulty)
.ToList();

Knot Database

Common Knots to Seed

  1. Albright Knot

    • Category: LineToLine
    • Difficulty: Intermediate
    • Strength: 95%
    • Use: Braid to mono/fluoro, line to leader
    • Video: [How-to video URL]
  2. Double Uni Knot

    • Category: LineToLine
    • Difficulty: Beginner
    • Strength: 90%
    • Use: Connecting similar diameter lines
  3. FG Knot

    • Category: LineToLeader
    • Difficulty: Advanced
    • Strength: 98%
    • Use: Braid to leader (low profile)
  4. Blood Knot

    • Category: LineToLine
    • Difficulty: Intermediate
    • Strength: 85%
    • Use: Connecting similar diameter lines
  5. Uni-to-Uni Knot

    • Category: LineToLine
    • Difficulty: Beginner
    • Strength: 90%
    • Use: General line connections

Benefits

  1. Complete Setup Tracking - Users can see exactly how someone's setup is configured
  2. Educational - Knot videos/instructions help users learn
  3. Reusability - Same spooling can be used across multiple setups
  4. Detailed Analytics - Track which knots/combinations work best
  5. How-to Videos - Link to instructional videos for each knot
  6. Setup Sharing - Users can share complete spooling configurations

Future Enhancements

  1. Knot Ratings - User ratings/reviews of knots
  2. Knot Difficulty Videos - Step-by-step video tutorials
  3. Setup Templates - Pre-configured spooling templates
  4. Setup Comparison - Compare different spooling configurations
  5. Knot Strength Testing - User-submitted strength test results
  6. Setup Analytics - Which setups catch more fish
  7. Maintenance Reminders - Alert when line needs respooling
  8. Line Age Tracking - Track how long line has been on reel