Skip to content

Slack通知メッセージから「天気」フィールドを削除(mobile側で廃止済みのため) #272

@taminororo

Description

@taminororo

開発概要

目的

  • Slack通知メッセージに含まれている「天気: ◯◯」の行を削除する
  • mobile側ではすでに天気選択UIが廃止され、weatherID=1(晴れ)で固定運用されている。通知側だけが律儀に天気を表示している状態を解消する
  • 通知文面の意味的整合性を取り戻すと同時に、付随する weatherRep.Find クエリを削除して無駄なDBアクセスを減らす

開発期間

  • 開始日:
  • 締切日:

考えられる開発内容

1. 現状の確認(調査済み)

1.1 mobile側で天気が廃止されている根拠

ファイル: mobile/lib/pages/my_shift_page.dart

L134: await _loadShiftCardDataList(_userID, _selectedDayID, 1); // 天気は初期化時に晴れ(1)で固定
L151: // 選択された日付IDをHiveに保存(天気は廃止)
L173: _loadShiftCardDataList(_userID, newDayID, 1); // 天気はタブ切り替え時に晴れ(1)で固定
L176: // SegmentedButton(天気)の選択状態が変わったときの処理   ← UI自体がコメントアウト

mobile側は天気を完全に「晴れ固定」で運用しており、ユーザーが天気を意識する場面は存在しない。

1.2 通知側で天気を扱っている箇所

ファイル: api/lib/usecase/notification_usecase.go

L282-296: // 天気情報を取得(mapから取得)ブロック全体(weatherRep.Find を呼び出し)
L304:     Weather: weather,   // MessageParams への引き渡し

ファイル: api/lib/externals/slack/slack_service.go

L23: Weather  string                                                              // MessageParams のフィールド定義
L96: slack.NewTextBlockObject("mrkdwn", fmt.Sprintf("天気: %s", params.Weather), ...) // Slack block 出力

2. 削除する箇所

2.1 slack_service.go

  • L23: MessageParams.Weather フィールドを削除
  • L96: 「天気: %s」を出力している TextBlockObject を削除

2.2 notification_usecase.go

  • L282-296: 天気取得ブロックをまるごと削除
  • L304: Weather: weather, の行を削除
  • weatherRep フィールド・コンストラクタ引数を削除(他で使っていないことを確認後)
  • WeatherRepository の import が他で使われていなければ削除

2.3 cmd/send-notifications/main.go

  • weatherRepo := repository.NewWeatherRepository(...) の行を削除
  • NewNotificationUseCase の呼び出しから weatherRepo 引数を削除

3. 動作確認

  • go build ./... で全ビルド成功
  • 手動で cmd/send-notifications を実行して、Slack DMに「天気: ◯◯」が含まれないことを確認
  • 既存の通知フォーマット(タイトル・ユーザー名・日付・変更内容)が崩れないことを確認

備考

  • 関連Issue: processGroup の N+1 問題解消(user/date/weather のバッチ取得) #264(N+1問題解消) — 当初 weather もバッチ化対象だったが、本Issueで天気フィールドごと削除すれば weather 関連のN+1対応は不要になる。本Issueを先に着手することを推奨
  • 関連Issue: 通知UseCaseの定期実行(5分間隔scheduler)をAPIプロセス内に実装 #271(scheduler実装) — 独立しており順序依存なし
  • DB側の weathers テーブル・shifts.weather_id カラムは残す。adminやshift管理機能で参照されている可能性があるため、本Issueではあくまで「通知文面からの削除」のみに留める
  • 将来 mobile が天気切替UIを復活させる方針に転じた場合、本Issueの変更を revert するだけで戻せる粒度に保つ

参考

開発の流れ

  1. PMにIssue(タスク)をもらう
  2. 開発をする(↓の「リンク」の『開発のやり方』を見よう!)
  3. チェックボックスを押していこう
  4. ヤバい状況になったらIssueの右側にあるStatusを「Help」にしてPMにSlackで連絡しよう
  5. チェックボックスが全部押せたらプルリクを作ろう
  6. レビューを待とう
  7. 修正点があれば修正しよう。なければPMがマージします!お疲れ様!

SeeFTのタスク管理のルール

  1. タスクは全てGit-Hub Projectで管理する
  2. 全てのタスクに期日を決める
  3. 毎週タスクの進捗を確認する(MTに出られない人はSlackで報告)
  4. 毎週忙しさ(消化できるタスク量)を共有する
  5. Helpは余裕のある人がいれば巻き取る。いなければ期日を変更する

リンク

Metadata

Metadata

Assignees

No one assigned

    Labels

    Size-XS開発時間の目安は3時間以下✨Backendバックエンドのタスク. 主にGo, TypeScriptを使用優先度1Better・なるべくここまでは実装したい枠🔨改修改修。バグ修正とはちょっと違うけど完全に新規作成でもないやつとか

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions