using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; namespace Iceshrimp.Backend.Core.Database.Tables; [Table("muting")] [Index(nameof(MuterId), nameof(MuteeId), IsUnique = true)] [Index(nameof(MuterId))] [Index(nameof(ExpiresAt))] [Index(nameof(MuteeId))] [Index(nameof(CreatedAt))] public class Muting { [Key] [Column("id")] [StringLength(32)] public string Id { get; set; } = null!; /// /// The created date of the Muting. /// [Column("createdAt")] public DateTime CreatedAt { get; set; } /// /// The mutee user ID. /// [Column("muteeId")] [StringLength(32)] public string MuteeId { get; set; } = null!; /// /// The muter user ID. /// [Column("muterId")] [StringLength(32)] public string MuterId { get; set; } = null!; [Column("expiresAt")] public DateTime? ExpiresAt { get; set; } [ForeignKey(nameof(MuteeId))] [InverseProperty(nameof(User.IncomingMutes))] public virtual User Mutee { get; set; } = null!; [ForeignKey(nameof(MuterId))] [InverseProperty(nameof(User.OutgoingMutes))] public virtual User Muter { get; set; } = null!; }