/** * These skeletons are representing only the changeable attributes and may or may not contains those. * Mainly used for updating these objects. */ import {Timeslot} from "./ObjectInterfaces"; /** * An interface which defines which attributes all other object skeletons should have. */ interface BaseSkeleton { last_changed?: Date } /** * An interface which defines which attributes a poll may can have. * Especially used to update only a few attributes. */ export interface PollSkeleton extends BaseSkeleton { title?: string start_date_poll?: Date end_date_poll?: Date displayed_dates?: Date[] exposing?: boolean location?: string timeslot_min_duration?: number hash?: string cal_start?: Date cal_end?: Date cal_timesteps?: number theme?: string color_nav?: string color_content?: string color_buttons?: string logo?: string timeslots?: Timeslot[] } /** * An interface which defines which attributes a comment may can have. * Especially used to update only a few attributes. */ export interface CommentSkeleton extends BaseSkeleton { text?: string } /** * An interface which defines which attributes a participant may can have. * Especially used to update only a few attributes. */ export interface ParticipantSkeleton extends BaseSkeleton { name?: string timeslots?: Timeslot[] } /** * An interface which defines which attributes an user may can have. * Especially used to update only a few attributes. */ export interface UserSkeleton extends BaseSkeleton { username? : string name? : string surname? : string email? : string hash? : string company? : string birthdate? : Date gender? : string school? : string country? : string profile_image? : string }