From cb362513f027ca8e2c53204f5f2ea447ad06bf05 Mon Sep 17 00:00:00 2001
From: Andrey Nering <andrey.nering@gmail.com>
Date: Wed, 29 Mar 2017 20:59:28 -0300
Subject: [PATCH] Add updated_unix column on issue_watch

---
 models/issue_watch.go | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/models/issue_watch.go b/models/issue_watch.go
index 03a677a3a0..1e26509638 100644
--- a/models/issue_watch.go
+++ b/models/issue_watch.go
@@ -12,12 +12,21 @@ type IssueWatch struct {
 	IsWatching  bool      `xorm:"NOT NULL"`
 	Created     time.Time `xorm:"-"`
 	CreatedUnix int64     `xorm:"NOT NULL"`
+	Updated     time.Time `xorm:"-"`
+	UpdatedUnix int64     `xorm:"NOT NULL"`
 }
 
 // BeforeInsert is invoked from XORM before inserting an object of this type.
 func (iw *IssueWatch) BeforeInsert() {
 	iw.Created = time.Now()
 	iw.CreatedUnix = time.Now().Unix()
+	iw.Updated = time.Now()
+	iw.UpdatedUnix = time.Now().Unix()
+}
+
+func (iw *IssueWatch) BeforeUpdate() {
+	iw.Updated = time.Now()
+	iw.UpdatedUnix = time.Now().Unix()
 }
 
 // CreateOrUpdateIssueWatch set watching for a user and issue
@@ -38,7 +47,9 @@ func CreateOrUpdateIssueWatch(userID, issueID int64, isWatching bool) error {
 			return err
 		}
 	} else {
-		if _, err := x.Table(&IssueWatch{}).Id(iw.ID).Update(map[string]interface{}{"is_watching": isWatching}); err != nil {
+		iw.IsWatching = isWatching
+
+		if _, err := x.Id(iw.ID).Cols("is_watching", "updated_unix").Update(iw); err != nil {
 			return err
 		}
 	}