All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.app.bsky.embed.recordViewRecord.kt Maven / Gradle / Ivy

The newest version!
@file:Suppress("DEPRECATION")

package app.bsky.embed

import app.bsky.actor.ProfileViewBasic
import com.atproto.label.Label
import kotlin.Long
import kotlin.Suppress
import kotlin.jvm.JvmInline
import kotlinx.collections.immutable.persistentListOf
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import sh.christian.ozone.api.AtUri
import sh.christian.ozone.api.Cid
import sh.christian.ozone.api.model.JsonContent
import sh.christian.ozone.api.model.ReadOnlyList
import sh.christian.ozone.api.model.Timestamp
import sh.christian.ozone.api.runtime.valueClassSerializer

@Serializable
public sealed interface RecordViewRecordEmbedUnion {
  public class ImagesViewSerializer : KSerializer by valueClassSerializer(
    serialName = "app.bsky.embed.images#view",
    constructor = ::ImagesView,
    valueProvider = ImagesView::value,
    valueSerializerProvider = { app.bsky.embed.ImagesView.serializer() },
  )

  @Serializable(with = ImagesViewSerializer::class)
  @JvmInline
  @SerialName("app.bsky.embed.images#view")
  public value class ImagesView(
    public val `value`: app.bsky.embed.ImagesView,
  ) : RecordViewRecordEmbedUnion

  public class VideoViewSerializer : KSerializer by valueClassSerializer(
    serialName = "app.bsky.embed.video#view",
    constructor = ::VideoView,
    valueProvider = VideoView::value,
    valueSerializerProvider = { app.bsky.embed.VideoView.serializer() },
  )

  @Serializable(with = VideoViewSerializer::class)
  @JvmInline
  @SerialName("app.bsky.embed.video#view")
  public value class VideoView(
    public val `value`: app.bsky.embed.VideoView,
  ) : RecordViewRecordEmbedUnion

  public class ExternalViewSerializer : KSerializer by valueClassSerializer(
    serialName = "app.bsky.embed.external#view",
    constructor = ::ExternalView,
    valueProvider = ExternalView::value,
    valueSerializerProvider = { app.bsky.embed.ExternalView.serializer() },
  )

  @Serializable(with = ExternalViewSerializer::class)
  @JvmInline
  @SerialName("app.bsky.embed.external#view")
  public value class ExternalView(
    public val `value`: app.bsky.embed.ExternalView,
  ) : RecordViewRecordEmbedUnion

  public class RecordViewSerializer : KSerializer by valueClassSerializer(
    serialName = "app.bsky.embed.record#view",
    constructor = ::RecordView,
    valueProvider = RecordView::value,
    valueSerializerProvider = { app.bsky.embed.RecordView.serializer() },
  )

  @Serializable(with = RecordViewSerializer::class)
  @JvmInline
  @SerialName("app.bsky.embed.record#view")
  public value class RecordView(
    public val `value`: app.bsky.embed.RecordView,
  ) : RecordViewRecordEmbedUnion

  public class RecordWithMediaViewSerializer : KSerializer by valueClassSerializer(
    serialName = "app.bsky.embed.recordWithMedia#view",
    constructor = ::RecordWithMediaView,
    valueProvider = RecordWithMediaView::value,
    valueSerializerProvider = { app.bsky.embed.RecordWithMediaView.serializer() },
  )

  @Serializable(with = RecordWithMediaViewSerializer::class)
  @JvmInline
  @SerialName("app.bsky.embed.recordWithMedia#view")
  public value class RecordWithMediaView(
    public val `value`: app.bsky.embed.RecordWithMediaView,
  ) : RecordViewRecordEmbedUnion
}

/**
 * @param value The record data itself.
 */
@Serializable
public data class RecordViewRecord(
  public val uri: AtUri,
  public val cid: Cid,
  public val author: ProfileViewBasic,
  /**
   * The record data itself.
   */
  public val `value`: JsonContent,
  public val labels: ReadOnlyList




© 2015 - 2024 Weber Informatics LLC | Privacy Policy