UNPKG

observation-js

Version:

A fully-typed TypeScript client for the waarneming.nl API.

63 lines (62 loc) 1.74 kB
import type { LocationDetail, Photo, Point, Sound, UserDetail } from './base'; import type { SpeciesData } from './species'; export interface Observation { id: number; url: string; species: SpeciesData | null; species_guess: string; user: UserDetail; location: LocationDetail | null; point: Point; date: string; time: string | null; count: number | null; count_text: string | null; photos: Photo[]; sounds: Sound[]; comments_count: number; likes_count: number; validation_status: string; is_validated: boolean; model_prediction: string; obscured_by_user: boolean; created_at: string; } export type ObservationField<F extends string> = { id: number; field: F; }; export type ObservationFieldValue = ObservationField<'behaviour' | 'collection_method' | 'counting_method' | 'determination_method' | 'life_stage' | 'sex' | 'substrate' | 'vegetation_type'> & { value: number; value_text: string; }; export type ObservationFieldValueFree = ObservationField<'project'> & { value_text: string; }; export type ObservationComment = { id: number; user: UserDetail; comment: string; created_at: string; }; export type ObservationLike = { user: UserDetail; created_at: string; }; export interface CreateObservationOptions { upload_photos?: Blob[]; upload_sounds?: Blob[]; } export type CreateObservationPayload = { date: string; species_id?: number; species_guess?: string; location_id?: number; point?: Point; time?: string; notes?: string; is_certain?: boolean; count?: number; upload_media?: string[]; }; export type UpdateObservationPayload = Partial<CreateObservationPayload>;