feat: add medias

This commit is contained in:
Rogee
2024-12-02 17:48:46 +08:00
parent 2b4cfb1a1e
commit 9e7b35e3c9
17 changed files with 806 additions and 11 deletions

View File

@@ -19,7 +19,7 @@ func FromContext(ctx context.Context, db *sql.DB) qrm.DB {
func TruncateAllTables(ctx context.Context, db *sql.DB, tableName ...string) error {
for _, name := range tableName {
sql := fmt.Sprintf("TRUNCATE TABLE %s CASCADE", name)
sql := fmt.Sprintf("TRUNCATE TABLE %s RESTART IDENTITY", name)
if _, err := db.ExecContext(ctx, sql); err != nil {
return err
}

View File

@@ -0,0 +1,7 @@
package db
type Pagination struct {
Offset string `json:"offset"`
OffsetID int64 `json:"-"`
Action int `json:"action"` // action: 0 :加载更多 1:刷新
}

179
backend/pkg/pg/media.gen.go Normal file
View File

@@ -0,0 +1,179 @@
// Code generated by go-enum DO NOT EDIT.
// Version: -
// Revision: -
// Build Date: -
// Built By: -
package pg
import (
"database/sql/driver"
"errors"
"fmt"
"strings"
)
const (
// MediaTypeVideo is a MediaType of type Video.
MediaTypeVideo MediaType = "video"
// MediaTypeAudio is a MediaType of type Audio.
MediaTypeAudio MediaType = "audio"
// MediaTypePdf is a MediaType of type Pdf.
MediaTypePdf MediaType = "pdf"
)
var ErrInvalidMediaType = fmt.Errorf("not a valid MediaType, try [%s]", strings.Join(_MediaTypeNames, ", "))
var _MediaTypeNames = []string{
string(MediaTypeVideo),
string(MediaTypeAudio),
string(MediaTypePdf),
}
// MediaTypeNames returns a list of possible string values of MediaType.
func MediaTypeNames() []string {
tmp := make([]string, len(_MediaTypeNames))
copy(tmp, _MediaTypeNames)
return tmp
}
// MediaTypeValues returns a list of the values for MediaType
func MediaTypeValues() []MediaType {
return []MediaType{
MediaTypeVideo,
MediaTypeAudio,
MediaTypePdf,
}
}
// String implements the Stringer interface.
func (x MediaType) String() string {
return string(x)
}
// IsValid provides a quick way to determine if the typed value is
// part of the allowed enumerated values
func (x MediaType) IsValid() bool {
_, err := ParseMediaType(string(x))
return err == nil
}
var _MediaTypeValue = map[string]MediaType{
"video": MediaTypeVideo,
"audio": MediaTypeAudio,
"pdf": MediaTypePdf,
}
// ParseMediaType attempts to convert a string to a MediaType.
func ParseMediaType(name string) (MediaType, error) {
if x, ok := _MediaTypeValue[name]; ok {
return x, nil
}
return MediaType(""), fmt.Errorf("%s is %w", name, ErrInvalidMediaType)
}
var errMediaTypeNilPtr = errors.New("value pointer is nil") // one per type for package clashes
// Scan implements the Scanner interface.
func (x *MediaType) Scan(value interface{}) (err error) {
if value == nil {
*x = MediaType("")
return
}
// A wider range of scannable types.
// driver.Value values at the top of the list for expediency
switch v := value.(type) {
case string:
*x, err = ParseMediaType(v)
case []byte:
*x, err = ParseMediaType(string(v))
case MediaType:
*x = v
case *MediaType:
if v == nil {
return errMediaTypeNilPtr
}
*x = *v
case *string:
if v == nil {
return errMediaTypeNilPtr
}
*x, err = ParseMediaType(*v)
default:
return errors.New("invalid type for MediaType")
}
return
}
// Value implements the driver Valuer interface.
func (x MediaType) Value() (driver.Value, error) {
return x.String(), nil
}
// Set implements the Golang flag.Value interface func.
func (x *MediaType) Set(val string) error {
v, err := ParseMediaType(val)
*x = v
return err
}
// Get implements the Golang flag.Getter interface func.
func (x *MediaType) Get() interface{} {
return *x
}
// Type implements the github.com/spf13/pFlag Value interface.
func (x *MediaType) Type() string {
return "MediaType"
}
type NullMediaType struct {
MediaType MediaType
Valid bool
}
func NewNullMediaType(val interface{}) (x NullMediaType) {
err := x.Scan(val) // yes, we ignore this error, it will just be an invalid value.
_ = err // make any errcheck linters happy
return
}
// Scan implements the Scanner interface.
func (x *NullMediaType) Scan(value interface{}) (err error) {
if value == nil {
x.MediaType, x.Valid = MediaType(""), false
return
}
err = x.MediaType.Scan(value)
x.Valid = (err == nil)
return
}
// Value implements the driver Valuer interface.
func (x NullMediaType) Value() (driver.Value, error) {
if !x.Valid {
return nil, nil
}
// driver.Value accepts int64 for int values.
return string(x.MediaType), nil
}
type NullMediaTypeStr struct {
NullMediaType
}
func NewNullMediaTypeStr(val interface{}) (x NullMediaTypeStr) {
x.Scan(val) // yes, we ignore this error, it will just be an invalid value.
return
}
// Value implements the driver Valuer interface.
func (x NullMediaTypeStr) Value() (driver.Value, error) {
if !x.Valid {
return nil, nil
}
return x.MediaType.String(), nil
}

9
backend/pkg/pg/media.go Normal file
View File

@@ -0,0 +1,9 @@
package pg
// swagger:enum MediaType
// ENUM(
// Video = "video",
// Audio = "audio",
// Pdf = "pdf",
// )
type MediaType string