import Foundation struct PostIDWrapper: Identifiable { let id: UUID } struct Post: Identifiable, Codable { let id: UUID // Уникальный идентификатор поста let title: String? // Название поста let description: String? // Описание поста let media: [MediaItem] // Массив медиафайлов let mediaOrder: [UUID]? // Порядок отображения медиа let thumbnailID: UUID? // Превью для видео let duration: Double? // Длительность видео/аудио let createdAt: Date // Дата создания let updatedAt: Date // Дата обновления let views: Int // Просмотры let likes: Int // Лайки let saves: Int // В сохранённом let commentsCount: Int // Кол-во комментариев let isLikedByCurrentUser: Bool // Лайк текущим юзером let isSavedByCurrentUser: Bool // Сохранено текущим юзером let authorID: String // Автор let hashtags: [String]? // Хэштеги let location: String? // Гео let languageCode: [String]? // Язык let accessLevel: AccessLevel // Доступ (публичный и т.п.) } enum MediaType: String, Codable { case photo case video } struct MediaItem: Identifiable, Codable { let id: UUID let type: MediaType } enum AccessLevel: String, Codable { case `public` case friends case archive }