UNPKG

@selfcommunity/types

Version:

Types to integrate a community created with SelfCommunity.

268 lines (267 loc) • 5.34 kB
import { SCUserType } from './user'; import { SCCategoryType } from './category'; import { SCContributionLocation } from './location'; import { SCPollType } from './poll'; import { SCMediaType } from './media'; import { SCTagType } from './tag'; import { SCReactionType } from './reaction'; import { SCContributionType } from './contribution'; import { SCGroupType } from './group'; import { SCEventType } from './event'; /** * Typology of feed */ export declare enum SCFeedTypologyType { HOME = "home", EXPLORE = "explore", CATEGORY = "category", GROUP = "group", EVENT = "event" } /** * Interface SCFeedUnitType. * FeedUnit Schema. */ export interface SCFeedUnitType { /** * The type of the object, can be discussion, post or status */ type: Exclude<SCContributionType, SCContributionType.COMMENT>; /** * Discussion object */ discussion?: SCFeedDiscussionType; /** * Post object */ post?: SCFeedPostType; /** * Status object */ status?: SCFeedStatusType; /** * Id of User that have seen this object */ seen_by_id?: number[]; /** * True if this object has the visibility boost */ has_boost?: boolean; /** * List of feed activities. This field is returned only for relevance feed */ activities?: SCFeedUnitActivityType[]; } export declare enum SCFeedUnitActivityTypologyType { COMMENT = "comment", VOTE = "vote", POLLVOTE = "pollvote", FOLLOW = "follow" } /** * Interface SCFeedUnitActivityType. * FeedUnit Activity Schema. */ export interface SCFeedUnitActivityType { /** * The type of the activity. */ type: SCFeedUnitActivityTypologyType; /** * The comment if type == SCFeedUnitActivityTypologyType.COMMENT. */ comment?: any; /** * The user involved. */ author: SCUserType; /** * Time of activity */ active_at: Date; /** * Id of Users that have seen this activity */ seen_by_id?: number[]; } /** * Interface SCFeedObjectType. * FeedObject Schema. * General object. */ export interface SCFeedObjectType { /** * The ID of the post. */ id: number; /** * List of categories. */ categories?: SCCategoryType[]; /** * The id of the group. */ group?: SCGroupType; /** * The id of the event. */ event?: SCEventType; /** * List of medias */ medias?: SCMediaType[]; /** * Location (contribution geolocation) */ location?: SCContributionLocation; /** * Author of the contribute */ author?: SCUserType; /** * Last activity at */ last_activity_at: Date; /** * Added at */ added_at: Date; /** * Slug */ slug: string; /** * Html */ html: string; /** * Summary */ summary: string; /** * Summary html */ summary_html?: string; /** * True if summary_html is truncated */ summary_truncated?: boolean; /** * True if the object is deleted */ deleted: boolean; /** * True if the object is hidden */ collapsed: boolean; /** * Number of comment */ comment_count: number; /** * Number of internal share */ share_count: number; /** * True if the logged user follow this object */ followed?: boolean; /** * Number of views */ view_count: number; /** * Number of votes */ vote_count: number; /** * Number of followers */ follower_count: number; /** * Reaction obj */ reaction: SCReactionType; /** * Reactions number and objs */ reactions_count: any[]; /** * True if the logged user has already voted this object */ voted?: boolean; /** * Number of flags */ flag_count: number; /** * Tags adderssing */ addressing: SCTagType[]; /** * Type: discussion, post, status */ type: Exclude<SCContributionType, SCContributionType.COMMENT>; /** * Suspended notification */ suspended?: boolean; } /** * Interface SCFeedDiscussionType. * FeedDiscussion Schema. */ export interface SCFeedDiscussionType extends SCFeedObjectType { /** * Title of the discussion */ title: string; /** * Poll */ poll?: SCPollType; } /** * Interface SCFeedPostType. * Post Schema. */ export interface SCFeedPostType extends SCFeedObjectType { /** * Poll */ poll?: SCPollType; } /** * Interface SCFeedStatusType. * Status Schema. */ export type SCFeedStatusType = SCFeedObjectType; /** * SCFeedUnseenCountType interface */ export interface SCFeedUnseenCountType { count_by_category?: SCCountByCategoryType[]; total: number; } export interface SCCountByCategoryType { id: number; count: number; } /** * Feed Object suspended status */ export interface SCFeedObjectSuspendedStatusType { suspended: boolean; } /** * Feed Object following status */ export interface SCFeedObjectFollowingStatusType { following: boolean; } /** * Feed Object hide status */ export interface SCFeedObjectHideStatusType { hidden: boolean; }