2701-есть флоу для оператора и красивый список накладных

This commit is contained in:
2026-01-27 06:31:38 +03:00
parent 8332b6ecda
commit 38a5143902
11 changed files with 1508 additions and 158 deletions

View File

@@ -435,3 +435,25 @@ func (r *pgRepository) DecrementBalance(serverID uuid.UUID) error {
Where("id = ? AND balance > 0", serverID).
UpdateColumn("balance", gorm.Expr("balance - ?", 1)).Error
}
// === Уведомления о черновиках ===
// GetServerUsersForDraftNotification возвращает Admin/Owner пользователей,
// которым нужно отправить уведомление о новом черновике
func (r *pgRepository) GetServerUsersForDraftNotification(serverID uuid.UUID, excludeUserID uuid.UUID) ([]account.ServerUser, error) {
var users []account.ServerUser
err := r.db.Preload("User").
Where("server_id = ?", serverID).
Where("role IN ?", []account.Role{account.RoleOwner, account.RoleAdmin}).
Where("mute_draft_notifications = ?", false).
Where("user_id != ?", excludeUserID).
Find(&users).Error
return users, err
}
// SetMuteDraftNotifications включает/выключает уведомления для пользователя
func (r *pgRepository) SetMuteDraftNotifications(userID, serverID uuid.UUID, mute bool) error {
return r.db.Model(&account.ServerUser{}).
Where("user_id = ? AND server_id = ?", userID, serverID).
Update("mute_draft_notifications", mute).Error
}