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-04-05 06:05:14 +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().
|
2022-08-31 07:49:08 +00:00
|
|
|
Immutable().
|
2023-04-05 06:05:14 +00:00
|
|
|
Sensitive(),
|
|
|
|
|
|
|
|
field.Int("card").
|
2022-08-31 07:49:08 +00:00
|
|
|
DefaultFunc(func() int {
|
|
|
|
rand.Seed(time.Now().UnixNano())
|
2023-04-05 06:05:14 +00:00
|
|
|
var a = rand.Intn(20)
|
2022-08-31 07:49:08 +00:00
|
|
|
if a == 1 {
|
2023-04-05 06:05:14 +00:00
|
|
|
card = rand.Intn(3) + 123
|
2022-08-31 07:49:08 +00:00
|
|
|
} else {
|
|
|
|
card = 0
|
|
|
|
}
|
|
|
|
return card
|
|
|
|
}).
|
|
|
|
Optional(),
|
|
|
|
|
2023-04-05 06:05:14 +00:00
|
|
|
field.String("skill").
|
|
|
|
DefaultFunc(func() string {
|
|
|
|
rand.Seed(time.Now().UnixNano())
|
|
|
|
var a = rand.Intn(30)
|
|
|
|
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").
|
2023-04-05 06:05:14 +00:00
|
|
|
//Immutable().
|
2022-08-31 07:49:08 +00:00
|
|
|
DefaultFunc(func() string {
|
|
|
|
rand.Seed(time.Now().UnixNano())
|
2023-04-05 06:05:14 +00:00
|
|
|
var a = rand.Intn(40)
|
2022-08-31 07:49:08 +00:00
|
|
|
if a == 1 {
|
|
|
|
super = "super"
|
|
|
|
} else {
|
|
|
|
super = "normal"
|
|
|
|
}
|
|
|
|
if card == 0 {
|
|
|
|
super = "normal"
|
|
|
|
}
|
|
|
|
return super
|
|
|
|
}).
|
|
|
|
Optional(),
|
|
|
|
|
2023-04-05 06:05:14 +00:00
|
|
|
field.String("token").
|
|
|
|
Optional().
|
|
|
|
Sensitive(),
|
|
|
|
|
2022-08-31 07:49:08 +00:00
|
|
|
field.Int("cp").
|
2023-04-05 06:05:14 +00:00
|
|
|
//Immutable().
|
2022-08-31 07:49:08 +00:00
|
|
|
DefaultFunc(func() int {
|
|
|
|
rand.Seed(time.Now().UnixNano())
|
2023-04-05 06:05:14 +00:00
|
|
|
var cp = 1 + rand.Intn(200)
|
|
|
|
if cp == 2 {
|
|
|
|
cp = 50 + rand.Intn(300)
|
2022-08-31 07:49:08 +00:00
|
|
|
}
|
2023-04-05 06:05:14 +00:00
|
|
|
if card >= 1 {
|
|
|
|
cp = 200 + cp + rand.Intn(500)
|
2022-08-31 07:49:08 +00:00
|
|
|
}
|
|
|
|
if super == "super" {
|
2023-04-05 06:05:14 +00:00
|
|
|
cp = 400 + cp + rand.Intn(700)
|
|
|
|
}
|
|
|
|
|
|
|
|
if skill == "critical" {
|
|
|
|
cp = 400 + cp + rand.Intn(700)
|
|
|
|
}
|
|
|
|
|
|
|
|
if card == 22 {
|
|
|
|
cp = 800 + cp + rand.Intn(1500)
|
|
|
|
}
|
|
|
|
|
|
|
|
if card == 25 {
|
|
|
|
cp = 0
|
2022-08-31 07:49:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return cp
|
|
|
|
}).
|
|
|
|
Optional(),
|
|
|
|
|
|
|
|
field.String("url").
|
|
|
|
Default(url).
|
|
|
|
Optional(),
|
|
|
|
|
2023-04-05 06:05:14 +00:00
|
|
|
field.Int("count").
|
|
|
|
Optional(),
|
|
|
|
|
|
|
|
field.String("author").
|
|
|
|
Optional(),
|
|
|
|
|
2022-08-31 07:49:08 +00:00
|
|
|
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
|
|
|
}
|
|
|
|
}
|