namespace TaxBaik.Application.Seasonal;

/// <summary>
/// 한국 세무사 사무실 연간 시즌 캘린더.
/// 각 시즌이 활성화되면 홈페이지 Hero가 해당 세무 이벤트에 맞게 전환된다.
/// </summary>
public static class TaxSeasonCalendar
{
    public static readonly IReadOnlyList<TaxSeason> Seasons =
    [
        new TaxSeason
        {
            Key = "vat-2nd",
            Name = "부가가치세 2기 확정신고",
            StartMonth = 1, StartDay = 1,
            EndMonth = 1, EndDay = 25,
            HeroHeadline = "부가가치세 2기\n1월 25일 마감",
            HeroSubtext = "일반과세 사업자 확정신고 · 기한 내 신고로 가산세 방지",
            UrgencyBadge = "D-{n}일 | 부가세 마감",
            FocusService = "business-tax",
            CtaText = "부가세 신고 상담",
            RelatedCategorySlug = "vat"
        },
        new TaxSeason
        {
            Key = "year-end-settlement",
            Name = "연말정산",
            StartMonth = 1, StartDay = 15,
            EndMonth = 2, EndDay = 28,
            HeroHeadline = "연말정산\n지금 준비하세요",
            HeroSubtext = "직원이 있는 사업자 원천징수 신고 · 환급 최대화",
            UrgencyBadge = "연말정산 진행 중",
            FocusService = "business-tax",
            CtaText = "연말정산 상담",
            RelatedCategorySlug = "business-tax"
        },
        new TaxSeason
        {
            Key = "corporate-tax",
            Name = "법인세 신고",
            StartMonth = 3, StartDay = 1,
            EndMonth = 3, EndDay = 31,
            HeroHeadline = "법인세\n3월 31일 마감",
            HeroSubtext = "법인사업자 결산 · 세무조정 · 절세 전략 수립",
            UrgencyBadge = "D-{n}일 | 법인세 마감",
            FocusService = "business-tax",
            CtaText = "법인세 신고 상담",
            RelatedCategorySlug = "business-tax"
        },
        new TaxSeason
        {
            Key = "income-tax",
            Name = "종합소득세 신고",
            StartMonth = 5, StartDay = 1,
            EndMonth = 5, EndDay = 31,
            HeroHeadline = "종합소득세\n5월 31일 마감",
            HeroSubtext = "개인사업자 · 임대소득 · 프리랜서 · 기타소득 모두 해당",
            UrgencyBadge = "D-{n}일 | 종합소득세 마감",
            FocusService = "business-tax",
            CtaText = "종합소득세 상담",
            RelatedCategorySlug = "income-tax"
        },
        new TaxSeason
        {
            Key = "vat-1st",
            Name = "부가가치세 1기 확정신고",
            StartMonth = 7, StartDay = 1,
            EndMonth = 7, EndDay = 25,
            HeroHeadline = "부가가치세 1기\n7월 27일 마감",
            HeroSubtext = "일반과세 사업자 1기 확정신고 · 매입세액 공제 점검",
            UrgencyBadge = "D-{n}일 | 부가세 마감",
            FocusService = "business-tax",
            CtaText = "부가세 신고 상담",
            RelatedCategorySlug = "vat"
        },
        new TaxSeason
        {
            Key = "comprehensive-real-estate-tax",
            Name = "종합부동산세",
            StartMonth = 11, StartDay = 15,
            EndMonth = 11, EndDay = 30,
            HeroHeadline = "종합부동산세\n납부 시즌",
            HeroSubtext = "다주택자 · 임대사업자 세부담 분석 · 분납·합산배제 검토",
            UrgencyBadge = "D-{n}일 | 종부세 납부",
            FocusService = "real-estate-tax",
            CtaText = "종부세 절세 상담",
            RelatedCategorySlug = "real-estate-tax"
        },
        new TaxSeason
        {
            Key = "year-end-gift",
            Name = "연말 증여·절세 플래닝",
            StartMonth = 12, StartDay = 1,
            EndMonth = 12, EndDay = 31,
            HeroHeadline = "연말 절세 플래닝\n마지막 기회",
            HeroSubtext = "증여 공제 한도 · 자산 이전 · 법인전환 연간 마감",
            UrgencyBadge = "D-{n}일 | 연간 증여 한도 마감",
            FocusService = "family-asset",
            CtaText = "연말 절세 상담",
            RelatedCategorySlug = "family-asset"
        }
    ];
}
