173 lines
2.4 KiB
Go
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{}
|
||
|
}
|
||
|
|