1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Slackインターフェース
//!
//! クリーンアーキテクチャに基づくSlack統合の実装
//!
//! ## アーキテクチャ
//!
//! このモジュールはSlack公式APIの概念とイベントモデルに基づいて構成されています。
//! Slackは「Slash Commands」「View Submissions」という主要な
//! インタラクションタイプを定義しており、これらに対応したディレクトリ構造を採用しています。
//!
//! ### モジュール構成
//!
//! - `app`: 依存性注入を備えたアプリケーションコア
//! - `gateway`: Slackイベントのルーティング(イベント種別に応じたハンドラへの振り分け)
//! - `slash_commands`: スラッシュコマンドハンドラ(`/register-calendar`、`/link-user`)
//! - `block_actions`: ブロックアクションハンドラ(モーダル内ボタンクリックなど)
//! - `view_submissions`: モーダル送信ハンドラ(フォーム送信時の処理)
//! - `utility`: ユーティリティ関数
//! - `slack_client`: Slack API クライアント(モーダル操作、メッセージ送信)
//! - `async_execution`: バックグラウンドタスク管理(非同期処理)
//! - `views`: UIコンポーネント定義(モーダル、メッセージのビルダー)
//! - `constants`: アクションID、コールバックIDなどの定数
//!
//! ## Slack APIとの対応
//!
//! | Slack概念 | このモジュールの対応 |
//! |-----------|---------------------|
//! | Slash Commands | `slash_commands/` |
//! | View Submissions | `view_submissions/` |
//! | Modals API | `slack_client/modals.rs` |
//! | Messages API | `slack_client/messages.rs` |
//! | Block Kit | `views/` |
// 主要な型を再エクスポート
pub use SlackApp;