mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 14:06:36 +08:00
299ac30ee4
- Purify core micro-kernel by removing context hardcoded helpers and reverse dependencies - Eliminate init() side effects in infra plugins with reversible lifecycle disposal - Completely isolate plugins by removing cross-plugin imports and using core/contracts - Introduce TaskService and RiskControlService contracts for unified cross-plugin APIs - Regenerate Swagger documentation and update developer guide matrix - Achieve 0 violations in check_cordis_architecture.sh and 100% test pass
154 lines
5.0 KiB
Go
154 lines
5.0 KiB
Go
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
// Package contracts defines unified service interfaces and DTOs for cross-plugin communication.
|
|
package contracts
|
|
|
|
// ======================================================================
|
|
// Domain Event Topic Constants
|
|
// ======================================================================
|
|
//
|
|
// All cross-plugin domain event topics MUST be declared here so that
|
|
// producers and consumers share the same string values without importing
|
|
// each other's implementation packages.
|
|
// ======================================================================
|
|
|
|
// --- Auth & User Events ---
|
|
const (
|
|
// EventTopicAdminLoggedIn fires when an admin user logs in.
|
|
EventTopicAdminLoggedIn = "admin:logged_in"
|
|
|
|
// EventTopicUserCreated fires when a new user account is created.
|
|
EventTopicUserCreated = "user:created"
|
|
|
|
// EventTopicUserUpdated fires when a user profile is updated.
|
|
EventTopicUserUpdated = "user:updated"
|
|
|
|
// EventTopicUserDeleted fires when a user account is deleted.
|
|
EventTopicUserDeleted = "user:deleted"
|
|
|
|
// EventTopicUserStatusChanged fires when a user account active status changes.
|
|
EventTopicUserStatusChanged = "user:status_changed"
|
|
|
|
// EventTopicTokenRevoked fires when an access token is revoked.
|
|
// #nosec G101
|
|
EventTopicTokenRevoked = "auth:token_revoked"
|
|
)
|
|
|
|
// --- Admin & System Events ---
|
|
const (
|
|
// EventTopicConfigChanged fires when a system configuration value changes.
|
|
EventTopicConfigChanged = "admin:config_changed"
|
|
|
|
// EventTopicSystemCleanup fires when a periodic system cleanup completes.
|
|
EventTopicSystemCleanup = "admin:system_cleanup"
|
|
)
|
|
|
|
// --- Task Events ---
|
|
const (
|
|
// EventTopicTaskCompleted fires when an asynchronous background task execution finishes.
|
|
EventTopicTaskCompleted = "task:completed"
|
|
)
|
|
|
|
// TaskCompletedEvent carries task execution outcome details.
|
|
type TaskCompletedEvent struct {
|
|
TaskID string `json:"task_id"`
|
|
TaskName string `json:"task_name"`
|
|
TaskType string `json:"task_type"`
|
|
Status string `json:"status"`
|
|
Duration int64 `json:"duration"`
|
|
ErrorMsg string `json:"error_msg,omitempty"`
|
|
ResultMsg string `json:"result_msg,omitempty"`
|
|
Payload string `json:"payload,omitempty"`
|
|
Detail string `json:"detail,omitempty"`
|
|
}
|
|
|
|
// --- Upload / Storage Events ---
|
|
const (
|
|
// EventTopicUploadCreated fires when a new file upload is recorded.
|
|
EventTopicUploadCreated = "upload:created"
|
|
|
|
// EventTopicUploadDeleted fires when a file upload is removed.
|
|
EventTopicUploadDeleted = "upload:deleted"
|
|
|
|
// EventTopicIngestComplete fires when a programmatic file ingest finishes.
|
|
EventTopicIngestComplete = "upload:ingest_complete"
|
|
)
|
|
|
|
// --- Message Gateway Events ---
|
|
const (
|
|
// EventTopicNotificationSent fires when a push notification is dispatched.
|
|
EventTopicNotificationSent = "message:notification_sent"
|
|
|
|
// EventTopicChannelBound fires when a user binds a messaging channel.
|
|
EventTopicChannelBound = "message:channel_bound"
|
|
|
|
// EventTopicChannelUnbound fires when a user unbinds a messaging channel.
|
|
EventTopicChannelUnbound = "message:channel_unbound"
|
|
)
|
|
|
|
// --- Risk Control Events ---
|
|
const (
|
|
// EventTopicAccessLogRecorded fires when a user access log entry is recorded.
|
|
EventTopicAccessLogRecorded = "risk:access_log_recorded"
|
|
)
|
|
|
|
// ======================================================================
|
|
// Domain Event Payload DTOs
|
|
// ======================================================================
|
|
|
|
// AdminLoggedIn 管理员登录领域事件载荷
|
|
type AdminLoggedIn struct {
|
|
User *UserDTO `json:"user"`
|
|
IP string `json:"ip"`
|
|
}
|
|
|
|
// UserCreatedEvent fires when a new user account is created.
|
|
type UserCreatedEvent struct {
|
|
User *UserDTO `json:"user"`
|
|
Password string `json:"-"`
|
|
}
|
|
|
|
// ConfigChangedEvent fires when a system configuration value changes.
|
|
type ConfigChangedEvent struct {
|
|
Key string `json:"key"`
|
|
OldVal any `json:"old_val,omitempty"`
|
|
NewVal any `json:"new_val,omitempty"`
|
|
}
|
|
|
|
// UploadCreatedEvent fires when a new file upload is recorded.
|
|
type UploadCreatedEvent struct {
|
|
UploadID uint64 `json:"upload_id,string"`
|
|
UserID uint64 `json:"user_id,string"`
|
|
FileName string `json:"file_name"`
|
|
FileSize int64 `json:"file_size"`
|
|
MimeType string `json:"mime_type"`
|
|
}
|
|
|
|
// NotificationSentEvent fires when a push notification is dispatched.
|
|
type NotificationSentEvent struct {
|
|
UserID uint64 `json:"user_id,string"`
|
|
Channel string `json:"channel"`
|
|
Title string `json:"title"`
|
|
Success bool `json:"success"`
|
|
ErrorInfo string `json:"error_info,omitempty"`
|
|
}
|
|
|
|
// UserStatusChangedEvent fires when a user status is enabled/disabled.
|
|
type UserStatusChangedEvent struct {
|
|
UserID uint64 `json:"user_id,string"`
|
|
IsActive bool `json:"is_active"`
|
|
}
|
|
|
|
// TokenRevokedEvent fires when an access token is revoked.
|
|
type TokenRevokedEvent struct {
|
|
UserID uint64 `json:"user_id,string"`
|
|
TokenHash string `json:"token_hash"`
|
|
}
|
|
|
|
// UserDeletedEvent fires when a user account is deleted.
|
|
type UserDeletedEvent struct {
|
|
CurrentUserID uint64 `json:"current_user_id,string"`
|
|
TargetUserID uint64 `json:"target_user_id,string"`
|
|
}
|