import { v4 as uuidv4 } from "uuid" import { ChannelInfo, MediaInfo, } from "@/types/general" import { defaultChannel } from "./defaultChannel" export function getNewMediaInfo(params: Partial = {}): MediaInfo { const channel = defaultChannel const mediaInfo: MediaInfo = { /** * UUID (v4) */ id: uuidv4(), /** * Status of the media */ status: "published", /** * Human readable title for the media */ label: "", /** * Human readable description for the media */ description: "", /** * Content prompt */ prompt: "", /** * URL to the media thumbnail */ thumbnailUrl: "", /** * URL to a clap file */ clapUrl: "", assetUrl: "", /** * This is contain the storage URL of the higher-resolution content */ assetUrlHd: "", /** * Counter for the number of views * * Note: should be managed by the index to prevent cheating */ numberOfViews: 0, /** * Counter for the number of likes * * Note: should be managed by the index to prevent cheating */ numberOfLikes: 0, /** * Counter for the number of dislikes * * Note: should be managed by the index to prevent cheating */ numberOfDislikes: 0, /** * When was the media updated */ updatedAt: new Date().toISOString(), /** * Arbotrary string tags to label the content */ tags: Array.isArray(params.tags) ? [ ...params.tags, ] : [], /** * Model name */ model: "SDXL", /** * LoRA name */ lora: "", /** * style name */ style: "", /** * Music prompt */ music: "", /** * Voice prompt */ voice: "", /** * The channel */ channel, /** * Media duration (in seconds) */ duration: 2, /** * Media width (eg. 1024) */ width: 1024, /** * Media height (eg. 576) */ height: 576, /** * General media aspect ratio */ orientation: "landscape", /** * Media projection (cartesian by default) */ projection: "latent" } return mediaInfo }