d5918c562c
Domain 레이어: - Enums: InquiryStatus (New/Contacted/Contracted/Closed) - Enums: ServiceType (기장/종소세/부가세/양도세/증여상속/기타) - Entities: Category, BlogPost, Inquiry, AdminUser (DB 매핑) - Interfaces: IBlogPostRepository, ICategoryRepository, IInquiryRepository, IDbConnectionFactory Infrastructure 레이어: - DbConnectionFactory: PostgreSQL 연결 팩토리 (Npgsql) - BlogPostRepository: GetBySlug, GetPublishedPaged, Create, Update, Delete, IncrementViewCount - CategoryRepository: GetAll, GetBySlug - InquiryRepository: Create, GetPaged, UpdateStatus - NuGet 의존성: Dapper 2.1.15, Npgsql 8.0.1, Configuration, DependencyInjection - DependencyInjection: AddInfrastructure() 확장 메서드 기술 결정: - Dapper로 SQL 완전 제어 - PostgreSQL 다중 쿼리 (QueryMultiple) 페이징 최적화 - 한국어 파라미터 처리 (::int, ::text 타입 명시) Co-Authored-By: Claude <noreply@anthropic.com>
24 lines
824 B
C#
24 lines
824 B
C#
namespace TaxBaik.Domain.Entities;
|
|
|
|
public class BlogPost
|
|
{
|
|
public int Id { get; set; }
|
|
public string Title { get; set; } = null!;
|
|
public string Content { get; set; } = null!;
|
|
public string Slug { get; set; } = null!;
|
|
public int? CategoryId { get; set; }
|
|
public string? Tags { get; set; }
|
|
public int? AuthorId { get; set; }
|
|
public DateTime? PublishedAt { get; set; }
|
|
public int ViewCount { get; set; }
|
|
public string? SeoTitle { get; set; }
|
|
public string? SeoDescription { get; set; }
|
|
public string? ThumbnailUrl { get; set; }
|
|
public bool IsPublished { get; set; }
|
|
public DateTime CreatedAt { get; set; }
|
|
public DateTime UpdatedAt { get; set; }
|
|
|
|
// Navigation property (populated via LEFT JOIN, not stored in DB)
|
|
public string? CategoryName { get; set; }
|
|
}
|