Skip to content

[Feature] mini LT の開催回をイベントカレンダーに取り込む #299

Description

@Tivo0921

概要

#174 のイベントカレンダー (/internal/events) に、mini LT の各開催回を自動で載せたい。
mini LT は月 2 回の定例なので、運営が毎回ダッシュボードから手入力するのは手間になる。

背景・動機

  • イベントカレンダーは運営がダッシュボード (/internal/admin/events) から入力する events コレクションを表示する
  • mini LT の開催回は weeks コレクション (lib/mini-lt/firebase.tsWeekData) に週 ID・開始時刻・発表一覧 (発表者・タイトル・概要・持ち時間) がすでにある
  • これをカレンダー側に取り込めば、発表者と発表内容までカレンダーから見える

提案する解決策

events コレクションには取り込みに備えて次のフィールドを用意してある (types/event.ts):

  • source: "manual" | "mini-lt"
  • sourceRef: string | null — mini LT の週 ID ("2026-W12")

やること:

  1. mini LT の週から events ドキュメントを作る関数 (lib/mini-lt/ あたり)
    • startAtEVENT_CONFIG の曜日 + WeekData.eventStartTime から日本時間で組む
    • title は「mini LT (2026 / W12)」など、description に発表者と発表タイトルを並べる
    • source: "mini-lt", sourceRef: weekId を入れる。同じ週は 1 件だけになるように sourceRef で upsert する
  2. 取り込みのトリガー
    • 案 A: mini LT 管理画面 (/mini-lt/admin) の Discord イベント作成 (createWeekEvent) と同じタイミングで作る
    • 案 B: 発表の追加・削除 (addTalk / removeTalk) のたびに description を同期する (syncWeekEventDescription と同様)
    • 案 C: ダッシュボードに「mini LT を取り込む」ボタンを置き、週を選んで手動で取り込む
  3. カレンダー側は source === "mini-lt" をオレンジのチップで区別する表示がすでに入っている (components/events/event-item.tsxEVENT_SOURCE_STYLES)

代替案

  • 取り込まずに、カレンダー表示時に weeks を直接読んで合成する (書き込みが要らないが、月ごとの範囲取得や過去分の扱いが複雑になる)

関連Issue/PR

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions