Education Entities
Entities for fishing courses, modules, enrollments, and certifications.
FishingCourse
Purpose: Educational fishing courses.
Key Fields:
Id(int): Unique identifierTitle: Course titleDescription: Course descriptionCourseCode: Course code/identifierInstructorUserId: User instructorInstructorName: Instructor name (if not user)InstructorBio: Instructor biographyCourseType: Online, InPerson, HybridLevel: Beginner, Intermediate, AdvancedCategory: Bass Fishing, Fly Fishing, Rod Building, etc.EstimatedHours: Estimated completion timeIsFree: Whether course is freePrice: Course priceCurrency: Currency codeMaxEnrollments: Maximum enrollmentsCurrentEnrollments: Current enrollment countRequiresApproval: Whether enrollment requires approvalIsActive: Whether course is activeIsPublished: Whether course is published
Relationships:
- Many-to-one: User (instructor)
- One-to-many: CourseModule, CourseEnrollment, CourseCertification
Usage Patterns:
// Create course
var course = new FishingCourse
{{
Title = "Advanced Bass Fishing Techniques",
InstructorUserId = instructorId,
CourseType = CourseType.Online,
Level = CourseLevel.Advanced,
Category = "Bass Fishing",
EstimatedHours = 8,
IsFree = false,
Price = 49.99m,
IsActive = true,
IsPublished = true
}};
// Get published courses
var courses = context.FishingCourses
.Where(fc => fc.IsPublished && fc.IsActive)
.Include(fc => fc.InstructorUser)
.ToList();
CourseModule
Purpose: Course content modules/lessons.
Key Fields:
Id(int): Unique identifierFishingCourseId: Associated courseTitle: Module titleDescription: Module descriptionOrder: Module orderContent: Module content (text, video URL, etc.)ContentType: Video, Text, Quiz, etc.DurationMinutes: Module durationIsRequired: Whether module is required
Relationships:
- Many-to-one: FishingCourse
CourseEnrollment
Purpose: User enrollments in courses.
Key Fields:
Id(int): Unique identifierFishingCourseId: Enrolled courseUserId: Enrolled userStatus: Enrolled, InProgress, Completed, DroppedEnrolledAt: Enrollment dateStartedAt: Start dateCompletedAt: Completion dateProgressPercent: Completion percentage
Relationships:
- Many-to-one: FishingCourse, User
CourseCertification
Purpose: Certifications earned from courses.
Key Fields:
Id(int): Unique identifierCourseEnrollmentId: Associated enrollmentCertificateNumber: Certificate numberIssuedAt: Issue dateExpiresAt: Expiration date (if applicable)CertificateUrl: Certificate URL
Relationships:
- Many-to-one: CourseEnrollment
Related Documentation
- Captain License - License renewal events