using Microsoft.AspNetCore.Mvc.RazorPages;
using TaxBaik.Application.Services;
using TaxBaik.Domain.Entities;

namespace TaxBaik.Web.Pages;

public class RssModel : PageModel
{
    private readonly BlogService _blogService;

    public List<BlogPost> Posts { get; set; } = [];
    public string LastBuildDate { get; set; } = DateTime.UtcNow.ToString("R");

    public RssModel(BlogService blogService)
    {
        _blogService = blogService;
    }

    public async Task OnGetAsync()
    {
        try
        {
            // 최근 50개 블로그 포스트 (RSS는 일반적으로 최신 기사만 포함)
            var (posts, _) = await _blogService.GetPublishedPagedAsync(1, 50, categoryId: null, ct: default);
            Posts = posts.OrderByDescending(p => p.PublishedAt).ToList();
        }
        catch (Exception ex)
        {
            // DB 연결 실패: 빈 포스트 목록 반환 (정적 피드 구조는 유지)
            Posts = [];
            System.Diagnostics.Debug.WriteLine($"RSS Feed: Blog posts load failed: {ex.Message}");
        }

        LastBuildDate = Posts.FirstOrDefault()?.PublishedAt?.ToString("R") ?? DateTime.UtcNow.ToString("R");
    }
}
