1
0
api/ent/schema/card.go

139 lines
2.1 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-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
}
}