Passed
Pull Request — main (#71)
by Yume
01:16
created

models.*MemDate.SetDefaultNextDate   A

Complexity

Conditions 1

Size

Total Lines 5
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nop 3
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
package models
2
3
import (
4
	"time"
5
6
	"gorm.io/gorm"
7
)
8
9
// MemDate structure
10
type MemDate struct {
11
	gorm.Model    `swaggerignore:"true"`
12
	UserID        uint          `json:"user_id" example:"1"`
13
	User          User          `swaggerignore:"true"`
14
	CardID        uint          `json:"card_id" example:"1"`
15
	Card          Card          `swaggerignore:"true"`
16
	DeckID        uint          `json:"deck_id" example:"1"`
17
	Deck          Deck          `swaggerignore:"true"`
18
	NextDate      time.Time     `json:"next_date" example:"01/01/2000"` // gorm:"autoCreateTime"`
19
	LearningStage LearningStage `json:"learning_stage" gorm:"default:0"`
20
}
21
22
// LearningStage enum type
23
type LearningStage int64
24
25
const (
26
	StageNeverSeen LearningStage = iota
27
	StageToLearn
28
	StageToRelearn
29
	StageLearning
30
	StageReviewing
31
	StageKnown
32
)
33
34
// ComputeNextDate calculates and sets the NextDate
35
func (m *MemDate) ComputeNextDate(interval int) {
36
	m.NextDate = time.Now().AddDate(0, 0, interval)
37
}
38
39
// SetDefaultNextDate fills MemDate values and sets NextDate as time.Now()
40
func (m *MemDate) SetDefaultNextDate(userID, cardID, deckID uint) {
41
	m.UserID = userID
42
	m.CardID = cardID
43
	m.DeckID = deckID
44
	m.NextDate = time.Now()
45
}
46