using UniVerse.Domain.Enums;

namespace UniVerse.Domain.Entities;

public class Lecture
{
    public int Id { get; set; }
    public int CourseId { get; set; }
    public int? TeacherId { get; set; }
    public int? LocationId { get; set; }
    public string Title { get; set; } = string.Empty;
    public string? Description { get; set; }
    public LectureFormat Format { get; set; } = LectureFormat.Offline;
    public DateTime StartsAt { get; set; }
    public DateTime EndsAt { get; set; }
    public bool IsOpen { get; set; } = true;
    public int MaxEnrollments { get; set; }
    public int MandatoryAttendeesCount { get; set; }
    public string? ExternalId { get; set; }
    public string? OnlineUrl { get; set; }
    public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
    public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;

    // Navigation properties
    public Course Course { get; set; } = null!;
    public User? Teacher { get; set; }
    public Location? Location { get; set; }
    public ICollection<LectureEnrollment> Enrollments { get; set; } = new List<LectureEnrollment>();
    public ICollection<Review> Reviews { get; set; } = new List<Review>();
}
