using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel.DataAnnotations;

namespace CouchLog.Data
{
    public class SharedList
    {
        [Key]
        public int Id { get; set; }

        [Required]
        [MaxLength(150)]
        public required string Name { get; set; }

        [Required]
        public required DateTime CreationTime { get; set; }

        public DateTime? LastChange { get; set; }


        // --- Navigation Properties ---
        public virtual ICollection<LinkTableSharedUser> SharedListUsers { get; set; } = new List<LinkTableSharedUser>();

        public virtual ICollection<SharedListEntity> SharedListEntities { get; set; } = new List<SharedListEntity>();

        public virtual ICollection<SharedWatchStatus> SharedWatchStatuses { get; set; } = new List<SharedWatchStatus>();

        public virtual ICollection<SharedListLabel> SharedListLabels { get; set; } = new List<SharedListLabel>();
    }
}