2026-05-05 17:59:30 +00:00
|
|
|
|
import { UserInfoViewModel } from "../admin/models"
|
|
|
|
|
|
|
|
|
|
|
|
export interface IntranetDashboardDto {
|
2026-05-06 14:48:44 +00:00
|
|
|
|
events: EventDto[]
|
2026-05-05 17:59:30 +00:00
|
|
|
|
birthdays: UserInfoViewModel[]
|
|
|
|
|
|
documents: DocumentDto[]
|
|
|
|
|
|
announcements: AnnouncementDto[]
|
|
|
|
|
|
surveys: SurveyDto[]
|
|
|
|
|
|
socialPosts: SocialPostDto[]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-06 14:48:44 +00:00
|
|
|
|
// Etkinlik
|
|
|
|
|
|
export interface EventDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
categoryName: string
|
|
|
|
|
|
typeName: string
|
|
|
|
|
|
date: Date
|
|
|
|
|
|
name: string
|
|
|
|
|
|
description: string
|
|
|
|
|
|
place: string
|
|
|
|
|
|
organizer: UserInfoViewModel
|
|
|
|
|
|
participants: number
|
|
|
|
|
|
photos: string[]
|
|
|
|
|
|
comments: EventCommentDto[]
|
|
|
|
|
|
likes: number
|
|
|
|
|
|
isPublished: boolean
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface EventCommentDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
user: UserInfoViewModel
|
|
|
|
|
|
content: string
|
|
|
|
|
|
creationTime: Date
|
|
|
|
|
|
likes: number
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-05 17:59:30 +00:00
|
|
|
|
// Doküman (FileItemDto ile uyumlu)
|
|
|
|
|
|
export interface DocumentDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
name: string
|
|
|
|
|
|
type: string // "file" or "folder"
|
|
|
|
|
|
size: number
|
|
|
|
|
|
extension: string
|
|
|
|
|
|
mimeType: string
|
|
|
|
|
|
createdAt: Date
|
|
|
|
|
|
modifiedAt: Date
|
|
|
|
|
|
path: string
|
|
|
|
|
|
parentId: string
|
|
|
|
|
|
isReadOnly: boolean
|
|
|
|
|
|
childCount: number
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Duyuru
|
|
|
|
|
|
export interface AnnouncementDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
title: string
|
|
|
|
|
|
excerpt: string
|
|
|
|
|
|
content: string
|
|
|
|
|
|
imageUrl?: string
|
|
|
|
|
|
category: string
|
|
|
|
|
|
userId: string
|
|
|
|
|
|
user: UserInfoViewModel
|
|
|
|
|
|
publishDate: Date
|
|
|
|
|
|
expiryDate?: Date
|
|
|
|
|
|
isPinned: boolean
|
|
|
|
|
|
viewCount: number
|
|
|
|
|
|
departments?: string[]
|
|
|
|
|
|
attachments?: { name: string; url: string; size: string }[]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Anket Cevap
|
|
|
|
|
|
export interface SurveyAnswerDto {
|
|
|
|
|
|
questionId: string
|
|
|
|
|
|
questionType: 'rating' | 'multiple-choice' | 'text' | 'textarea' | 'yes-no'
|
|
|
|
|
|
value: string | number | string[]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Anket Cevabı
|
|
|
|
|
|
export interface SurveyResponseDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
surveyId: string
|
|
|
|
|
|
respondentId?: string // Anonymous ise null
|
|
|
|
|
|
submissionTime: Date
|
|
|
|
|
|
answers: SurveyAnswerDto[]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Anket Sorusu Seçeneği
|
|
|
|
|
|
export interface SurveyQuestionOptionDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
text: string
|
|
|
|
|
|
order: number
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Anket Sorusu
|
|
|
|
|
|
export interface SurveyQuestionDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
surveyId: string
|
|
|
|
|
|
questionText: string
|
|
|
|
|
|
type: 'rating' | 'multiple-choice' | 'text' | 'textarea' | 'yes-no'
|
|
|
|
|
|
order: number
|
|
|
|
|
|
isRequired: boolean
|
|
|
|
|
|
options?: SurveyQuestionOptionDto[]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Anket
|
|
|
|
|
|
export interface SurveyDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
title: string
|
|
|
|
|
|
description: string
|
|
|
|
|
|
creatorId: UserInfoViewModel
|
|
|
|
|
|
creationTime: Date
|
|
|
|
|
|
deadline: Date
|
|
|
|
|
|
questions: SurveyQuestionDto[]
|
|
|
|
|
|
responses: number
|
|
|
|
|
|
targetAudience: string[]
|
|
|
|
|
|
status: 'draft' | 'active' | 'closed'
|
|
|
|
|
|
isAnonymous: boolean
|
2026-05-06 07:54:04 +00:00
|
|
|
|
myResponse?: SurveyResponseDto
|
2026-05-05 17:59:30 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Sosyal Duvar - Comment Interface
|
|
|
|
|
|
export interface SocialCommentDto {
|
|
|
|
|
|
id: string
|
2026-05-06 13:47:18 +00:00
|
|
|
|
user: UserInfoViewModel
|
2026-05-05 17:59:30 +00:00
|
|
|
|
content: string
|
|
|
|
|
|
creationTime: Date
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface SocialPollOptionDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
text: string
|
|
|
|
|
|
votes: number
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Sosyal Duvar - Social Media Interface
|
|
|
|
|
|
export interface SocialMediaDto {
|
|
|
|
|
|
id?: string
|
|
|
|
|
|
type: 'image' | 'video' | 'poll'
|
|
|
|
|
|
|
|
|
|
|
|
// Ortak alanlar
|
|
|
|
|
|
urls?: string[]
|
|
|
|
|
|
|
|
|
|
|
|
// Anket (poll) ile ilgili alanlar doğrudan burada
|
|
|
|
|
|
pollQuestion?: string
|
|
|
|
|
|
pollOptions?: SocialPollOptionDto[]
|
|
|
|
|
|
pollTotalVotes?: number
|
|
|
|
|
|
pollEndsAt?: Date
|
|
|
|
|
|
pollUserVoteId?: string
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Sosyal Duvar - Ana Interface
|
|
|
|
|
|
export interface SocialPostDto {
|
|
|
|
|
|
id: string
|
|
|
|
|
|
user: UserInfoViewModel
|
|
|
|
|
|
content: string
|
|
|
|
|
|
locationJson?: string
|
|
|
|
|
|
media?: SocialMediaDto
|
|
|
|
|
|
likeCount: number
|
|
|
|
|
|
isLiked: boolean
|
|
|
|
|
|
likeUsers: UserInfoViewModel[]
|
|
|
|
|
|
comments: SocialCommentDto[]
|
|
|
|
|
|
isOwnPost: boolean
|
|
|
|
|
|
creationTime: Date
|
|
|
|
|
|
}
|