repo_description: A new AList Fork to Anti Trust Crisis
repo_topics: alist aliyunpan baidupan openlist
code: package model
  
  import (
  	"fmt"
  	"time"
  )
  
  type IndexProgress struct {
  	ObjCount     uint64     `json:"obj_count"`
  	IsDone       bool       `json:"is_done"`
  	LastDoneTime *time.Time `json:"last_done_time"`
  	Error        string     `json:"error"`
  }
  
  type SearchReq struct {
  	Parent   string `json:"parent"`
  	Keywords string `json:"keywords"`
  	// 0 for all, 1 for dir, 2 for file
  	Scope int `json:"scope"`
  	PageReq
  }
  
  type SearchNode struct {
  	Parent string `json:"parent" gorm:"index"`
  	Name   string `json:"name"`
  	IsDir  bool   `json:"is_dir"`
  	Size   int64  `json:"size"`
  }
  
  func (p *SearchReq) Validate() error {
  	if p.Page < 1 {
  		return fmt.Errorf("page can't < 1")
  	}
  	if p.PerPage < 1 {
  		return fmt.Errorf("per_page can't < 1")
  	}
  	return nil
  }
  
  func (s *SearchNode) Type() string {
  	return "SearchNode"
  }
  