ドメインモデル¶
実装観点
本ページのエンティティは 概念 として読む。Claude Code ランタイムモデル では、これらは DB レコードではなく Backlog 課題・テーマリポのファイル・LINE API の状態 に分散する。状態の在処は Claude Code ランタイム / 状態の在処 を参照。
中核エンティティ¶
classDiagram
class Project {
+id
+name
+backlog_project_key
+github_template_repo
}
class ChannelAccount {
+id
+channel: enum(LINE,TikTok,IG,HubSpot)
+external_account_id
+credentials_ref
}
class ContentTask {
+id
+backlog_issue_key
+channel
+status
+scheduled_at
+target_tags
}
class Template {
+id
+path_in_github
+version
}
class Rule {
+id
+path_in_github
+version
}
class Audience {
+id
+external_user_id
+tags
}
class Tag {
+id
+name
+project_id
}
class Trigger {
+id
+kind: enum(manual,schedule,event)
+payload
}
class Asset {
+id
+kind: enum(image,video,carousel)
+uri
}
class Coupon {
+id
+line_coupon_id
+rule_ref
}
class LoyaltyCard {
+id
+line_card_id
+goals
}
class Survey
class SurveyResponse
class DeliveryRun {
+id
+content_task_id
+started_at
+finished_at
+result
}
Project "1" --> "*" ChannelAccount
Project "1" --> "*" ContentTask
Project "1" --> "*" Tag
ContentTask "1" --> "1" Trigger
ContentTask "*" --> "*" Template
ContentTask "*" --> "*" Asset
ContentTask "*" --> "*" Tag : target_tags
ContentTask "1" --> "*" DeliveryRun
Audience "*" --> "*" Tag
Survey "1" --> "*" SurveyResponse
SurveyResponse "*" --> "*" Tag : derives
概念の説明¶
Project¶
spin-dd 運用代行の HubSpot 顧客サイト と 1:1 で対応する。「馬頭ゴルフ」「おかだ」「ラテール」など 運用前提 の台帳に対応。Backlog プロジェクトは TTRTAGSPIN 共用 + ウォッチ対象設定 で識別(詳細は Backlog 連携)。
ChannelAccount¶
Project × チャネルの組。1 プロジェクトが LINE と Instagram を持つなら、ChannelAccount は 2 つできる。各種トークンはここから参照。
ContentTask¶
Backlog 課題と 1:1 で対応する配信単位。Backlog の status が状態の SoT で、未対応 → 処理中 → automedia承認 (承認=配信対象) → automedia実行済み (成功) / automediaエラー (失敗) を遷移する。詳細は Backlog 連携 / マッピング規約 と コンテンツワークフロー。
Template / Rule¶
HubSpot 管理 GitHub リポジトリにある メッセージ雛形 と 配信ルール。automedia 側はキャッシュしつつ、SoT は GitHub。
- Template: 文面・レイアウト(Flex Message / カルーセル / 動画つき など)
- Rule: いつ・誰に配るかの条件式(例: 「タグ=スイーツ閲覧者 かつ 直近30日以内に未配信」)
Audience / Tag¶
- Audience: 友だち / フォロワーの抽象。チャネルごとの外部 ID を持つ
- Tag: 配信対象を絞るためのラベル。プロジェクトごとに名前空間を持つ
- Tag の供給源: アンケート回答 / クリック履歴 / 手動付与 / 外部システム同期
Trigger¶
ContentTask の起動条件。
schedule: 日時起動manual: 指示(Backlog コメントコマンド、UI ボタン、API 呼び出し)event: 友だち追加 / 特定アンケート回答 / 外部 Webhook
Asset¶
画像 / 動画 / カルーセル素材。チャネル横断で再利用される(特に動画は LINE/TikTok/Instagram で同じものを使う)。
Coupon / LoyaltyCard / Survey¶
LINE 公式アカウント機能を抽象化したもの。一旦 LINE 専用だが、将来他チャネルでも使えるよう「チャネル拘束しない概念名」にしておく。
DeliveryRun¶
ContentTask 1 件に対する 実際の配信実行記録。リトライがあれば複数件。