1
0
api/ent/schema/card.go

149 lines
2.2 KiB
Go
Raw Normal View History

2022-08-31 07:49:08 +00:00
package schema
import (
"time"
"math/rand"
"entgo.io/ent"
"entgo.io/ent/schema/edge"
"entgo.io/ent/schema/field"
)
// Card holds the schema definition for the Card entity.
type Card struct {
ent.Schema
}
var url = "https://card.syui.ai"
var card int
var super string
2023-05-03 10:16:36 +00:00
var skill string
2022-08-31 07:49:08 +00:00
var cp int
func (Card) Fields() []ent.Field {
return []ent.Field{
2023-04-05 06:05:14 +00:00
field.String("password").
NotEmpty().
Immutable().
Sensitive(),
2022-08-31 07:49:08 +00:00
field.Int("card").
Immutable().
DefaultFunc(func() int {
rand.Seed(time.Now().UnixNano())
var a = rand.Intn(10)
if a == 1 {
2023-04-09 07:18:10 +00:00
card = rand.Intn(16)
2022-08-31 07:49:08 +00:00
} else {
card = 0
}
2023-04-09 13:54:51 +00:00
2022-08-31 07:49:08 +00:00
if card == 13 {
2023-04-28 14:34:59 +00:00
card = 2
}
2023-04-09 11:05:44 +00:00
// 2023/04/09 premium card id:15
2023-04-09 13:54:51 +00:00
if card == 15 {
2023-04-28 14:34:59 +00:00
card = 3
2023-04-09 13:54:51 +00:00
}
2023-04-13 07:50:11 +00:00
if card == 16 {
2023-04-28 14:34:59 +00:00
card = 4
2023-04-13 07:50:11 +00:00
}
2023-05-01 14:00:17 +00:00
if card == 17 {
card = 5
}
if card == 18 {
card = 6
}
2022-08-31 07:49:08 +00:00
return card
}).
Optional(),
2023-05-03 10:16:36 +00:00
field.String("skill").
DefaultFunc(func() string {
rand.Seed(time.Now().UnixNano())
var a = rand.Intn(12)
if a == 1 {
skill = "critical"
} else {
skill = "normal"
}
if card == 0 {
skill = "normal"
}
return skill
}).
Optional(),
2022-08-31 07:49:08 +00:00
field.String("status").
Immutable().
DefaultFunc(func() string {
rand.Seed(time.Now().UnixNano())
var a = rand.Intn(10)
if a == 1 {
super = "super"
} else {
super = "normal"
}
if card == 0 {
super = "normal"
}
return super
}).
Optional(),
field.Int("cp").
Immutable().
DefaultFunc(func() int {
rand.Seed(time.Now().UnixNano())
2023-04-06 03:38:49 +00:00
var cp = 1 + rand.Intn(100)
if cp == 2 {
2023-04-09 13:54:51 +00:00
cp = 50 + rand.Intn(150)
2022-08-31 07:49:08 +00:00
}
2023-04-08 02:23:05 +00:00
if card >= 1 {
2023-04-09 13:54:51 +00:00
cp = 150 + cp + rand.Intn(300)
2022-08-31 07:49:08 +00:00
}
if super == "super" {
2023-04-09 13:54:51 +00:00
cp = 300 + cp + rand.Intn(500)
2022-08-31 07:49:08 +00:00
}
2023-05-21 06:45:18 +00:00
if skill == "critical" {
cp = 300 + cp + rand.Intn(500)
}
if card == 22 {
cp = 800 + cp + rand.Intn(1500)
}
2022-08-31 07:49:08 +00:00
return cp
}).
Optional(),
field.String("url").
Immutable().
Default(url).
Optional(),
field.Time("created_at").
Immutable().
Optional().
Default(func() time.Time {
return time.Now().In(jst)
}),
}
}
func (Card) Edges() []ent.Edge {
return []ent.Edge{
edge.From("owner", User.Type).
Ref("card").
Unique().
Required(),
2023-04-05 06:05:14 +00:00
2022-08-31 07:49:08 +00:00
}
}