import { CommunityType, CommunityStatsDto } from "./common"; import { SortDirection } from "./base"; import { PageMetadataDto, PaginationQueryDto, UserDto } from "./base"; import { InvitedUserDto } from "./invitation"; export type CommunityFields = "stats" | "groups"; export declare class CommunityGroupDto { id: string; name: string; } export declare class CommunityGroupsDto { member: CommunityGroupDto; admin: CommunityGroupDto; } export declare class InitialInvitationDto { users: InvitedUserDto[]; } export declare class CreateCommunityDto { image?: string; title: string; type: CommunityType; schoolYearStart?: number; schoolYearEnd?: number; welcomeNote?: string; discussionEnabled: boolean; secretCode?: string; invitations?: InitialInvitationDto; colour?: string; } export declare class UpdateCommunityDto { image?: string; title: string; type: CommunityType; schoolYearStart?: number; schoolYearEnd?: number; welcomeNote?: string; discussionEnabled: boolean; secretCode?: string; colour?: string; courseId?: number | null; courseTitle?: string | null; } export declare enum CommunitySortField { TITLE = "TITLE" } export declare class SearchCommunityRequestDto extends PaginationQueryDto { title?: string; type?: CommunityType; createdAfter?: Date; schoolYear?: number; sortBy?: CommunitySortField; sortDirection?: SortDirection; fields?: string[]; } export declare class SearchCommunityResponseDto { items: CommunityResponseDto[]; meta: PageMetadataDto; } export declare class CommunityResponseDto { id: number; image?: string; title: string; creationDate: Date; updateDate?: Date; type: CommunityType; schoolYearStart?: number; schoolYearEnd?: number; welcomeNote?: string; discussionEnabled: boolean; archivedDate?: Date; creator: UserDto; modifier?: UserDto; archiver?: UserDto; stats?: CommunityStatsDto; colour?: string; courseId?: number | null; courseTitle?: string | null; courseEntId?: string; groups?: CommunityGroupsDto; } export declare class GenerateJoinCodeRequestDto { } export declare class CommunityJoinCodeDto { id: number; joinCode: string; } export declare class CommunityJoinCodeResponseDto { id: number; image?: string; title: string; creationDate: Date; updateDate?: Date; type: CommunityType; schoolYearStart?: number; schoolYearEnd?: number; welcomeNote?: string; discussionEnabled: boolean; archivedDate?: Date; creator: UserDto; modifier?: UserDto; archiver?: UserDto; stats?: CommunityStatsDto; colour?: string; isMember: boolean; }