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

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;

/**
 * Elasticsearch document for an artist. Note that only select fields are indexed for searching.
 */
@Document(indexName = "artist", createIndex = false)
public class ArtistDocumentEntity {

    @Id
    @Field(name = "artist_id")
    private String artistId;

    @Field(name = "particip_no")
    private String participNo;

    @Field(name = "full_name")
    private String fullName;

    @Field(name = "first_name")
    private String firstName;

    @Field(name = "last_name")
    private String lastName;

    @Field(name = "spotify_artist_id")
    private String spotifyArtistId;

    @Field(name = "apple_artist_id")
    private Integer appleArtistId;

    @Field(name = "date_of_birth")
    private Long dateOfBirth;

    @Field(name = "date_of_death")
    private Long dateOfDeath;

    public String getArtistId() {
        return this.artistId;
    }

    public String getParticipNo() {
        return this.participNo;
    }

    public String getFullName() {
        return this.fullName;
    }

    public String getFirstName() {
        return this.firstName;
    }

    public String getLastName() {
        return this.lastName;
    }

    public String getSpotifyArtistId() {
        return this.spotifyArtistId;
    }

    public Integer getAppleArtistId() {
        return this.appleArtistId;
    }

    public Long getDateOfBirth() {
        return this.dateOfBirth;
    }

    public Long getDateOfDeath() {
        return this.dateOfDeath;
    }

    public void setArtistId(String artistId) {
        this.artistId = artistId;
    }

    public void setParticipNo(String participNo) {
        this.participNo = participNo;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public void setSpotifyArtistId(String spotifyArtistId) {
        this.spotifyArtistId = spotifyArtistId;
    }

    public void setAppleArtistId(Integer appleArtistId) {
        this.appleArtistId = appleArtistId;
    }

    public void setDateOfBirth(Long dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }

    public void setDateOfDeath(Long dateOfDeath) {
        this.dateOfDeath = dateOfDeath;
    }
}
