Files

89 lines
2.0 KiB
C#
Raw Permalink Normal View History

2023-07-29 15:03:45 +03:00
// This file is a part of RSS Bot for Telegram.
// License: MIT
// Author: CrazyHackGUT aka Kruzya (Sergey Gut) <kruzefag@gmail.com>
//
2020-03-02 00:00:52 +04:00
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
2023-07-29 15:14:52 +03:00
namespace Kruzya.TelegramBot.RichSiteSummary.Data;
/// <summary>
/// Represents a feed in database.
/// </summary>
public class Feed : RepresentableEntity
2020-03-02 00:00:52 +04:00
{
2023-07-29 15:14:52 +03:00
#region RepresentableEntity
protected override string ViewableText
2020-03-02 00:00:52 +04:00
{
2023-07-29 15:14:52 +03:00
get => Title;
}
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
protected override string ViewableUrl
{
get => HomePage;
}
#endregion
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
/// <summary>
/// The unique feed id.
/// </summary>
[Key]
public Guid FeedId { get; set; }
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
/// <summary>
/// The feed URL.
/// </summary>
[Required]
public string Url { get; set; }
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
/// <summary>
/// The home page for this feed.
/// </summary>
[Required]
public string HomePage { get; set; }
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
/// <summary>
/// Feed title.
/// </summary>
[MaxLength(256)]
[Required]
public string Title { get; set; }
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
/// <summary>
/// DateTime when feed fetched successfully in last time.
/// </summary>
[Required]
public DateTime UpdatedAt { get; set; }
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
/// <summary>
/// This flag indicates, bot should monitor changes in post date, or not.
/// </summary>
[Required]
[DefaultValue(false)]
public bool WatchPostDate { get; set; }
2022-11-02 11:02:41 +02:00
2023-07-29 15:14:52 +03:00
[Required]
[DefaultValue(false)]
public bool IsPrivate { get; set; }
2022-11-02 11:02:41 +02:00
2023-07-29 15:14:52 +03:00
public Feed()
{
FeedId = new Guid();
UpdatedAt = DateTime.Now;
}
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
/// <summary>
/// All posts from this feed.
/// </summary>
public virtual ICollection<Post> Posts { get; set; }
2020-03-02 00:00:52 +04:00
2023-07-29 15:14:52 +03:00
/// <summary>
/// All exists subscriber for this feed.
/// </summary>
public virtual ICollection<Subscriber> Subscribers { get; set; }
2023-07-29 15:14:52 +03:00
public override string ToString() => Title;
2020-03-02 00:00:52 +04:00
}