export interface Article {
  id: string;
  importId: number;
  title: string;
  excerpt: string;
  content: string;
  categoryId: number;
  cityId: number;
  authors: AuthorLink[];
  authorName: string;
  coAuthorName: string;
  photographerName: string;
  coverImage: string;
  images?: string[];
  imageSubs?: string[];
  gallery?: GalleryImage[];
  publishedAt: string;
  readTime: number;
  likes: number;
  dislikes: number;
  userReaction?: 'like' | 'dislike' | null;
  isActive: boolean;
}

export enum AuthorRole {
  WRITER = 'WRITER',
  PHOTOGRAPHER = 'PHOTOGRAPHER',
  EDITOR = 'EDITOR',
  TRANSLATOR = 'TRANSLATOR',
}

// Определяем тип ArticleData для редактрования
export interface ArticleData {
  title: string;
  excerpt: string;
  categoryId: number;
  cityId: number;
  coverImage: string;
  readTime: number;
  gallery: GalleryImage[];
  content: string;
  importId: number;
  isActive: boolean;
  authors: AuthorLink[];
}

// Структура ответа на список статей
export interface ArticlesResponse {
  articles: Article[];
  totalPages: number;
  currentPage: number;
}

export interface GalleryImage {
  id: string;
  url: string;
  caption: string;
  alt: string;
  width: number;
  height: number;
  size: number;
  format: string;

}

export interface Author {
  id: string;
  displayName: string;
  avatarUrl: string;
  email?: string;
  twitterUrl?: string;
  instagramUrl?: string;
  websiteUrl?: string;
  order: number;
  createdAt: string;
  updatedAt: string;
  isActive: boolean;
  userId?: string;
  roles: string;
}

export interface AuthorLink {
  authorId: string;
  role: AuthorRole;
  author: Author;
}

export type ViewMode = 'list' | 'create' | 'edit';

export const CategoryIds: number[] = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8];
export const CityIds: number[] = [1 , 2];

export const CategoryTitles: Record<number, string> = {
  1: 'Кино', 2: 'Театр', 3: 'Музыка', 4: 'Спорт', 5: 'Искусство', 6: 'Легенды', 7: 'Юбилеи', 8: 'Память'
};

export const CityTitles: Record<number, string> = {
  1: 'Москва', 2: 'Санкт-Петербург'
};

export const CategoryDescription: Record<number, string> = {
  1: 'Свет, камера, действие! Магия кино',
  2: 'Гармония актёра и зрителя',
  3: 'Мелодии двух столиц',
  4: 'Сила, движение, победа',
  5: 'Шедевры говорят с нами',
  6: 'Истории, которые вдохновляют',
  7: 'Вехи истории и великие даты',
  8: 'Память о великом и наследие'
};

export const CategoryText: Record<number, string> = {
  1: 'Узнайте о кино-премьерах, фестивалях и знаковых фильмах Москвы и Петербурга. Мир кино открывается для вас.',
  2: 'Откройте для себя театральные премьеры и закулисье лучших сцен Москвы и Петербурга.',
  3: 'Исследуйте богатый музыкальный мир двух столиц. Узнайте о лучших исполнителях и событиях.',
  4: 'Спорт — это не только движение, но и культура. Откройте для себя спортивные события двух столиц.',
  5: 'Откройте богатство искусства Москвы и Петербурга: от классики до современного авангарда.',
  6: 'Узнайте о великих личностях Москвы и Петербурга. Легенды, которые формируют культуру.',
  7: 'Погрузитесь в исторические события и юбилеи, которые оставляют след в культуре двух столиц.',
  8: 'Сохраняем культурные традиции и память о великих событиях и людях.'
};
