using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; namespace Spacebar.Db.Models; [Table("channels")] public partial class Channel { [Key] [Column("id", TypeName = "character varying")] public string Id { get; set; } = null!; [Column("created_at", TypeName = "timestamp without time zone")] public DateTime CreatedAt { get; set; } [Column("name", TypeName = "character varying")] public string? Name { get; set; } [Column("icon")] public string? Icon { get; set; } [Column("type")] public int Type { get; set; } [Column("last_message_id", TypeName = "character varying")] public string? LastMessageId { get; set; } [Column("guild_id", TypeName = "character varying")] public string? GuildId { get; set; } [Column("parent_id", TypeName = "character varying")] public string? ParentId { get; set; } [Column("owner_id", TypeName = "character varying")] public string? OwnerId { get; set; } [Column("last_pin_timestamp")] public int? LastPinTimestamp { get; set; } [Column("default_auto_archive_duration")] public int? DefaultAutoArchiveDuration { get; set; } [Column("permission_overwrites")] public string? PermissionOverwrites { get; set; } [Column("video_quality_mode")] public int? VideoQualityMode { get; set; } [Column("bitrate")] public int? Bitrate { get; set; } [Column("user_limit")] public int? UserLimit { get; set; } [Column("nsfw")] public bool Nsfw { get; set; } [Column("rate_limit_per_user")] public int? RateLimitPerUser { get; set; } [Column("topic", TypeName = "character varying")] public string? Topic { get; set; } [Column("retention_policy_id", TypeName = "character varying")] public string? RetentionPolicyId { get; set; } [Column("flags")] public int Flags { get; set; } [Column("default_thread_rate_limit_per_user")] public int? DefaultThreadRateLimitPerUser { get; set; } [InverseProperty("Channel")] public virtual ICollection CloudAttachments { get; set; } = new List(); [ForeignKey("GuildId")] [InverseProperty("Channels")] public virtual Guild? Guild { get; set; } [InverseProperty("AfkChannel")] public virtual ICollection GuildAfkChannels { get; set; } = new List(); [InverseProperty("PublicUpdatesChannel")] public virtual ICollection GuildPublicUpdatesChannels { get; set; } = new List(); [InverseProperty("RulesChannel")] public virtual ICollection GuildRulesChannels { get; set; } = new List(); [InverseProperty("SystemChannel")] public virtual ICollection GuildSystemChannels { get; set; } = new List(); [InverseProperty("WidgetChannel")] public virtual ICollection GuildWidgetChannels { get; set; } = new List(); [InverseProperty("Parent")] public virtual ICollection InverseParent { get; set; } = new List(); [InverseProperty("Channel")] public virtual ICollection Invites { get; set; } = new List(); [InverseProperty("Channel")] public virtual ICollection Messages { get; set; } = new List(); [ForeignKey("OwnerId")] [InverseProperty("Channels")] public virtual User? Owner { get; set; } [ForeignKey("ParentId")] [InverseProperty("InverseParent")] public virtual Channel? Parent { get; set; } [InverseProperty("Channel")] public virtual ICollection ReadStates { get; set; } = new List(); [InverseProperty("Channel")] public virtual ICollection Recipients { get; set; } = new List(); [InverseProperty("Channel")] public virtual ICollection Streams { get; set; } = new List(); [InverseProperty("Channel")] public virtual ICollection VoiceStates { get; set; } = new List(); [InverseProperty("Channel")] public virtual ICollection WebhookChannels { get; set; } = new List(); [InverseProperty("SourceChannel")] public virtual ICollection WebhookSourceChannels { get; set; } = new List(); [ForeignKey("ChannelsId")] [InverseProperty("Channels")] public virtual ICollection MessagesNavigation { get; set; } = new List(); }