package proto import ( "time" "strconv" ) var counter = make(chan uint8) func init() { go func() { var i uint8 for i = 0; true; i++ { counter <- i } }() } var epoch = time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC) func GenId() string { t := time.Now().UnixMilli() - epoch.UnixMilli() id := uint64(t << 6) | uint64(<-counter & 63) return strconv.FormatUint(id, 36) } func Timestamp() string { return strconv.FormatInt(time.Now().Unix(), 10) }