1
0
api/ent/schema/users.go
2022-08-31 15:18:14 +09:00

173 lines
2.4 KiB
Go

package schema
import (
"time"
"regexp"
"entgo.io/ent"
"math/rand"
"entgo.io/ent/schema/field"
"github.com/kyokomi/lottery"
)
type Users struct {
ent.Schema
}
func Random(i int) (l int){
rand.Seed(time.Now().UnixNano())
l = rand.Intn(20)
for l == 0 {
l = rand.Intn(20)
}
return
}
func Kira(i int) (l bool){
lot := lottery.New(rand.New(rand.NewSource(time.Now().UnixNano())))
if lot.Lot(i) {
l = true
} else {
l = false
}
return
}
var jst,err = time.LoadLocation("Asia/Tokyo")
var a = Random(4)
var d = Random(20)
var h = Random(20)
var k = Random(20)
var s = Random(20)
var c = Random(20)
var battle = 2
func StatusR()(status string){
if d == 1 {
var status = "super"
return status
} else {
var status = "normal"
return status
}
return
}
func CharaR()(chara string){
if a == 1 {
var chara = "drai"
return chara
} else if a == 2 {
var chara = "octkat"
return chara
} else if a == 3 {
var chara = "kyosuke"
return chara
} else {
var chara = "ponta"
return chara
}
return
}
func Nextime() (tt string){
t := time.Now().Add(time.Hour * 24 * 1).In(jst)
tt = t.Format("20060102")
return
}
func (Users) Fields() []ent.Field {
return []ent.Field{
field.String("user").
NotEmpty().
Immutable().
MaxLen(7).
Match(regexp.MustCompile("[a-z]+$")).
Unique(),
field.String("chara").
Immutable().
Default(CharaR()).
Optional(),
field.Int("skill").
Immutable().
Optional().
Default(k),
field.Int("hp").
Optional().
Default(h),
field.Int("attack").
Optional().
Default(a),
field.Int("defense").
Optional().
Default(d),
field.Int("critical").
Optional().
Default(c),
field.Int("battle").
Optional().
Default(1),
field.Int("win").
Optional().
Default(0),
field.Int("day").
Optional().
Default(0),
field.Float("percentage").
Optional().
Default(0),
field.Bool("limit").
Optional().
Default(false),
field.String("status").
Immutable().
Optional().
Default(StatusR()),
field.String("comment").
Optional().
Default(""),
field.Time("created_at").
Immutable().
Optional().
Default(func() time.Time {
return time.Now().In(jst)
}),
field.String("next").
Default(Nextime()).
Optional(),
field.Time("updated_at").
Optional().
Default(func() time.Time {
return time.Now().In(jst)
}),
field.String("url").
Immutable().
Optional().
Default("https://syui.cf/api"),
}
}
func (Users) Edges() []ent.Edge {
return []ent.Edge{}
}