// Path: src/main/java/com/uwetrottmann/tmdb2/entities/Person.java
// public class Person extends BasePerson {
// 
//     public List<JsonPrimitive> also_known_as;
//     public String biography;
//     public Date birthday;
//     public Date deathday;
//     public Integer gender;
//     public String homepage;
//     public String imdb_id;
//     public String place_of_birth;
// 
//     public PersonExternalIds external_ids;
//     public PersonCredits combined_credits;
//     public PersonCredits movie_credits;
//     public PersonCredits tv_credits;
//     public PersonImages images;
//     public TaggedImagesResultsPage tagged_images;
//     public Changes changes;
// 
// }
// 
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/PersonCredits.java
// public class PersonCredits {
// 
//     public Integer id;
//     public List<PersonCastCredit> cast;
//     public List<PersonCrewCredit> crew;
// 
// }
// 
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/PersonExternalIds.java
// public class PersonExternalIds {
// 
//     public Integer id;
//     public String imdb_id;
//     public String facebook_id;
//     public String freebase_id;
//     public String freebase_mid;
//     public Integer tvrage_id;
//     public String instagram_id;
//     public String twitter_id;
// 
// }
// 
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/PersonImages.java
// public class PersonImages {
// 
//     public Integer id;
//     public List<Image> profiles;
// 
// }
// 
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/TmdbDate.java
// public class TmdbDate {
// 
//     // can not use ThreadLocal.withInitial as it requires Java 8
//     private static final ThreadLocal<DateFormat> TMDB_DATE_FORMAT = new ThreadLocal<DateFormat>() {
//         @Override
//         public DateFormat initialValue() {
//             return new SimpleDateFormat(TmdbHelper.TMDB_DATE_PATTERN);
//         }
//     };
// 
//     private final Date date;
// 
//     public TmdbDate(Date date) {
//         this.date = date;
//     }
// 
//     public TmdbDate(String date) {
//         Date parsedDate;
//         try {
//             parsedDate = TMDB_DATE_FORMAT.get().parse(date);
//         } catch (ParseException e) {
//             parsedDate = null;
//         }
//         this.date = parsedDate;
//     }
// 
//     @Override
//     public String toString() {
//         return TMDB_DATE_FORMAT.get().format(date);
//     }
// 
// }


import com.uwetrottmann.tmdb2.entities.AppendToResponse;
import com.uwetrottmann.tmdb2.entities.Changes;
import com.uwetrottmann.tmdb2.entities.Person;
import com.uwetrottmann.tmdb2.entities.PersonCredits;
import com.uwetrottmann.tmdb2.entities.PersonExternalIds;
import com.uwetrottmann.tmdb2.entities.PersonImages;
import com.uwetrottmann.tmdb2.entities.PersonResultsPage;
import com.uwetrottmann.tmdb2.entities.TaggedImagesResultsPage;
import com.uwetrottmann.tmdb2.entities.TmdbDate;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import java.util.Map;
package com.uwetrottmann.tmdb2.services;



public interface PeopleService {

    /**
     * Get the general person information for a specific id.
     *
     * @param personId A Person TMDb id.
     */
    @GET("person/{person_id}")
    Call<Person> summary(
            @Path("person_id") int personId,
            @Query("language") String language
    );

    /**
     * Get the general person information for a specific id.
     *
     * @param personId         A Person TMDb id.
     * @param appendToResponse <em>Optional.</em> extra requests to append to the result. <b>Accepted Value(s):</b> movie_credits, tv_credits, combined_credits, external_ids, images, changes, tagged_images,
     */
    @GET("person/{person_id}")
    Call<Person> summary(
            @Path("person_id") int personId,
            @Query("language") String language,
            @Query("append_to_response") AppendToResponse appendToResponse
    );

    /**
     * Get the general person information for a specific id.
     *
     * @param personId         A Person TMDb id.
     * @param appendToResponse <em>Optional.</em> extra requests to append to the result. <b>Accepted Value(s):</b> movie_credits, tv_credits, combined_credits, external_ids, images, changes, tagged_images,
     * @param options          <em>Optional.</em> parameters for the appended extra results.
     */
    @GET("person/{person_id}")
    Call<Person> summary(
            @Path("person_id") int personId,
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/Person.java
// public class Person extends BasePerson {
// 
//     public List<JsonPrimitive> also_known_as;
//     public String biography;
//     public Date birthday;
//     public Date deathday;
//     public Integer gender;
//     public String homepage;
//     public String imdb_id;
//     public String place_of_birth;
// 
//     public PersonExternalIds external_ids;
//     public PersonCredits combined_credits;
//     public PersonCredits movie_credits;
//     public PersonCredits tv_credits;
//     public PersonImages images;
//     public TaggedImagesResultsPage tagged_images;
//     public Changes changes;
// 
// }
// 
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/PersonCredits.java
// public class PersonCredits {
// 
//     public Integer id;
//     public List<PersonCastCredit> cast;
//     public List<PersonCrewCredit> crew;
// 
// }
// 
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/PersonExternalIds.java
// public class PersonExternalIds {
// 
//     public Integer id;
//     public String imdb_id;
//     public String facebook_id;
//     public String freebase_id;
//     public String freebase_mid;
//     public Integer tvrage_id;
//     public String instagram_id;
//     public String twitter_id;
// 
// }
// 
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/PersonImages.java
// public class PersonImages {
// 
//     public Integer id;
//     public List<Image> profiles;
// 
// }
// 
// Path: src/main/java/com/uwetrottmann/tmdb2/entities/TmdbDate.java
// public class TmdbDate {
// 
//     // can not use ThreadLocal.withInitial as it requires Java 8
//     private static final ThreadLocal<DateFormat> TMDB_DATE_FORMAT = new ThreadLocal<DateFormat>() {
//         @Override
//         public DateFormat initialValue() {
//             return new SimpleDateFormat(TmdbHelper.TMDB_DATE_PATTERN);
//         }
//     };
// 
//     private final Date date;
// 
//     public TmdbDate(Date date) {
//         this.date = date;
//     }
// 
//     public TmdbDate(String date) {
//         Date parsedDate;
//         try {
//             parsedDate = TMDB_DATE_FORMAT.get().parse(date);
//         } catch (ParseException e) {
//             parsedDate = null;
//         }
//         this.date = parsedDate;
//     }
// 
//     @Override
//     public String toString() {
//         return TMDB_DATE_FORMAT.get().format(date);
//     }
// 
// }


// Path: src/main/java/com/uwetrottmann/tmdb2/services/PeopleService.java
import com.uwetrottmann.tmdb2.entities.AppendToResponse;
import com.uwetrottmann.tmdb2.entities.Changes;
import com.uwetrottmann.tmdb2.entities.Person;
import com.uwetrottmann.tmdb2.entities.PersonCredits;
import com.uwetrottmann.tmdb2.entities.PersonExternalIds;
import com.uwetrottmann.tmdb2.entities.PersonImages;
import com.uwetrottmann.tmdb2.entities.PersonResultsPage;
import com.uwetrottmann.tmdb2.entities.TaggedImagesResultsPage;
import com.uwetrottmann.tmdb2.entities.TmdbDate;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import java.util.Map;

package com.uwetrottmann.tmdb2.services;



public interface PeopleService {

    /**
     * Get the general person information for a specific id.
     *
     * @param personId A Person TMDb id.
     */
    @GET("person/{person_id}")
    Call<Person> summary(
            @Path("person_id") int personId,
            @Query("language") String language
    );

    /**
     * Get the general person information for a specific id.
     *
     * @param personId         A Person TMDb id.
     * @param appendToResponse <em>Optional.</em> extra requests to append to the result. <b>Accepted Value(s):</b> movie_credits, tv_credits, combined_credits, external_ids, images, changes, tagged_images,
     */
    @GET("person/{person_id}")
    Call<Person> summary(
            @Path("person_id") int personId,
            @Query("language") String language,
            @Query("append_to_response") AppendToResponse appendToResponse
    );

    /**
     * Get the general person information for a specific id.
     *
     * @param personId         A Person TMDb id.
     * @param appendToResponse <em>Optional.</em> extra requests to append to the result. <b>Accepted Value(s):</b> movie_credits, tv_credits, combined_credits, external_ids, images, changes, tagged_images,
     * @param options          <em>Optional.</em> parameters for the appended extra results.
     */
    @GET("person/{person_id}")
    Call<Person> summary(
            @Path("person_id") int personId,
            @Query("language") String language,