MVCPostall/Postall.Domain/Entities/ChannelData.cs
2025-03-04 19:06:01 -03:00

68 lines
1.8 KiB
C#

using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Postall.Domain.Dtos;
namespace Postall.Domain.Entities
{
/// <summary>
/// Modelo de dados para armazenamento do canal no MongoDB
/// </summary>
public class ChannelData
{
[BsonId]
[BsonRepresentation(BsonType.String)]
public string Id { get; set; }
[BsonElement("userId")]
public string UserId { get; set; }
[BsonElement("channelId")]
public string ChannelId { get; set; }
[BsonElement("youtubeId")]
public string YoutubeId { get; set; }
[BsonElement("title")]
public string Title { get; set; }
[BsonElement("description")]
public string Description { get; set; }
[BsonElement("thumbnailUrl")]
public string ThumbnailUrl { get; set; }
[BsonElement("publishedAt")]
public DateTime PublishedAt { get; set; }
[BsonElement("subscriberCount")]
public ulong SubscriberCount { get; set; }
[BsonElement("videoCount")]
public ulong VideoCount { get; set; }
[BsonElement("isSelected")]
public bool IsSelected { get; set; }
[BsonIgnore]
public string ChannelUrl => $"https://www.youtube.com/channel/{YoutubeId}";
public ChannelResponse ToChannelResponse() => new ChannelResponse
{
Id = Id,
UserId = UserId,
YoutubeId = YoutubeId,
Title = Title,
Description = Description,
ThumbnailUrl = ThumbnailUrl,
PublishedAt = PublishedAt,
SubscriberCount = SubscriberCount,
VideoCount = VideoCount
};
}
}