package io.delphiplatform.api.v3.rdb.entity;

import org.springframework.beans.factory.annotation.Value;

public interface PlaylistProjection {

    @Value("#{target.playlist_id}")
    String getPlaylistId();

    @Value("#{target.dsp_id}")
    String getDspId();

    @Value("#{target.country_code}")
    String getCountryCodeValue();

    String getName();

    @Value("#{target.num_tracks}")
    Integer getNumTracks();

    @Value("#{target.playlist_type}")
    String getPlaylistType();

    String getUri();

    @Value("#{target.artwork_url}")
    String getArtworkUrl();

    @Value("#{target.dsp_playlist_id}")
    String getDspPlaylistId();

    @Value("#{target.dsp_name}")
    String getDspName();

    @Value("#{target.dsp_slug}")
    String getDspSlug();

    Integer getRank();

    @Value("#{target.description}")
    String getDescription();

    @Value("#{target.followers}")
    Integer getFollowers();

    @Value("#{target.is_ignored}")
    Boolean getIsIgnored();

    @Value("#{target.is_removed}")
    Boolean getIsRemoved();

    @Value("#{target.is_personalised}")
    Boolean getIsPersonalised();

    @Value("#{target.is_public}")
    Boolean getIsPublic();

    @Value("#{target.owner_username}")
    String getOwnerUserName();

    @Value("#{target.owner_display_name}")
    String getOwnerDisplayName();

    @Value("#{target.owner_country_code}")
    String getOwnerCountryCode();

    @Value("#{target.owner_category_id}")
    String getOwnerCategoryId();

    @Value("#{target.owner_category_name}")
    String getOwnerCategoryName();

}
