アクティビティログ機能の実装
スペース内での活動履歴を記録・表示する機能を実装する。
要件
- ページの作成・編集・削除履歴
- メンバーの参加・離脱履歴
- 管理者操作(役割変更、メンバー削除等)の履歴
- 時系列での表示
- 管理者のみ閲覧可能
技術的要件
SpaceActivityRecord
モデルの作成- 活動記録のためのサービス層実装
- 活動履歴表示画面の作成
- ページネーション対応
データベース
create_table :space_activities do |t|
t.uuid :id, primary_key: true, default: "generate_ulid()"
t.uuid :space_id, null: false
t.uuid :actor_id # 操作したspace_member_id
t.string :action, null: false # created_page, deleted_member, etc
t.uuid :target_id # 対象のID(ページID、メンバーIDなど)
t.string :target_type # Page, SpaceMember, etc
t.text :metadata # JSON形式で追加情報
t.timestamps
end