openreplay/backend/pkg/spot/api/model.go

76 lines
1.9 KiB
Go

package api
import (
"openreplay/backend/pkg/spot/service"
"time"
)
type CreateSpotRequest struct {
Name string `json:"name"`
Comment string `json:"comment"`
Duration int `json:"duration"`
Crop []int `json:"crop"`
Preview string `json:"preview"`
}
type CreateSpotResponse struct {
ID string `json:"id"`
MobURL string `json:"mobURL"`
VideoURL string `json:"videoURL"`
}
type Info struct {
Name string `json:"name"`
UserEmail string `json:"userEmail"`
Duration int `json:"duration"`
Comments []service.Comment `json:"comments"`
CreatedAt time.Time `json:"createdAt"`
MobURL string `json:"mobURL"`
PreviewURL string `json:"previewURL"`
VideoURL string `json:"videoURL"`
StreamFile string `json:"streamFile"`
}
type GetSpotResponse struct {
Spot *Info `json:"spot"`
}
type GetSpotsRequest struct {
Query string `json:"query"` // for search by name (optional)
FilterBy string `json:"filterBy"` // "own", "all", "shared"
Order string `json:"order"`
Page uint64 `json:"page"`
Limit uint64 `json:"limit"`
}
type ShortInfo struct {
ID string `json:"id"`
Name string `json:"name"`
UserEmail string `json:"userEmail"`
Duration int `json:"duration"`
CreatedAt time.Time `json:"createdAt"`
PreviewURL string `json:"previewURL"`
}
type GetSpotsResponse struct {
Spots []ShortInfo `json:"spots"`
Total uint64 `json:"total"`
TenantHasSpots bool `json:"tenantHasSpots"`
}
type UpdateSpotRequest struct {
Name string `json:"name"`
}
type AddCommentRequest struct {
UserName string `json:"userName"`
Comment string `json:"comment"`
}
type DeleteSpotRequest struct {
SpotIDs []string `json:"spotIDs"`
}
type UpdateSpotPublicKeyRequest struct {
Expiration uint64 `json:"expiration"` // in seconds
}