astro_avtourist/frontend/src/data/documents.ts

196 lines
9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export interface DocumentItem {
id: string;
title: string;
description: string;
fileSize: string;
fileType: 'pdf' | 'docx' | 'xlsx' | 'zip';
downloadUrl: string;
category: string;
tags?: string[];
}
export const documents: DocumentItem[] = [
{
id: 'doc-1',
title: 'Договор на оказание юридических услуг',
description: 'Типовой договор на предоставление юридических услуг для физических лиц',
fileSize: '245 КБ',
fileType: 'pdf',
downloadUrl: 'https://example.com/documents/contract.pdf',
category: 'Договоры',
tags: ['договор', 'услуги', 'юрист', 'физические лица']
},
{
id: 'doc-2',
title: 'Доверенность на представление интересов',
description: 'Образец доверенности для представления интересов в суде и государственных органах',
fileSize: '180 КБ',
fileType: 'docx',
downloadUrl: 'https://example.com/documents/power-of-attorney.docx',
category: 'Доверенности',
tags: ['доверенность', 'суд', 'представительство']
},
{
id: 'doc-3',
title: 'Согласие на обработку персональных данных',
description: 'Форма согласия на обработку персональных данных в соответствии с ФЗ-152',
fileSize: '120 КБ',
fileType: 'pdf',
downloadUrl: 'https://example.com/documents/privacy-consent.pdf',
category: 'Документы',
tags: ['персональные данные', 'согласие', 'фз-152']
},
{
id: 'doc-4',
title: 'Прайс-лист на юридические услуги 2024',
description: 'Актуальные цены на все виды предоставляемых юридических услуг',
fileSize: '320 КБ',
fileType: 'xlsx',
downloadUrl: 'https://example.com/documents/price-list.xlsx',
category: 'Информация',
tags: ['цены', 'стоимость', 'прайс', 'услуги']
},
{
id: 'doc-5',
title: 'Памятка клиента при ДТП',
description: 'Пошаговая инструкция: что делать при ДТП, какие документы собирать, куда обращаться',
fileSize: '1.2 МБ',
fileType: 'pdf',
downloadUrl: 'https://example.com/documents/dtp-memo.pdf',
category: 'Памятки',
tags: ['дтп', 'авария', 'инструкция', 'документы']
},
{
id: 'doc-6',
title: 'Заявление на обжалование постановления',
description: 'Образец заявления для обжалования постановления об административном правонарушении',
fileSize: '210 КБ',
fileType: 'docx',
downloadUrl: 'https://example.com/documents/appeal-application.docx',
category: 'Шаблоны',
tags: ['обжалование', 'постановление', 'заявление']
},
{
id: 'doc-7',
title: 'Акт выполненных работ',
description: 'Унифицированная форма акта сдачи-приёмки выполненных работ',
fileSize: '150 КБ',
fileType: 'docx',
downloadUrl: 'https://example.com/documents/work-act.docx',
category: 'Договоры',
tags: ['акт', 'работы', 'сдача']
},
{
id: 'doc-8',
title: 'Реквизиты компании',
description: 'Полные реквизиты для оплаты юридических услуг',
fileSize: '95 КБ',
fileType: 'pdf',
downloadUrl: 'https://example.com/documents/details.pdf',
category: 'Информация',
tags: ['реквизиты', 'оплата', 'банк']
},
{
id: 'doc-9',
title: 'Жалоба в ГИБДД',
description: 'Образец жалобы на неправомерные действия сотрудников ГИБДД',
fileSize: '190 КБ',
fileType: 'docx',
downloadUrl: 'https://example.com/documents/gibdd-complaint.docx',
category: 'Шаблоны',
tags: ['жалоба', 'гибдд', 'неправомерные действия']
},
{
id: 'doc-10',
title: 'Памятка при лишении прав',
description: 'Что делать если вас лишают водительских прав: порядок действий и сроки',
fileSize: '980 КБ',
fileType: 'pdf',
downloadUrl: 'https://example.com/documents/license-revocation-memo.pdf',
category: 'Памятки',
tags: ['лишение прав', 'порядок действий', 'сроки']
},
{
id: 'doc-11',
title: 'Договор на ведение дела в суде',
description: 'Договор на представительство в судебных органах по гражданским делам',
fileSize: '280 КБ',
fileType: 'pdf',
downloadUrl: 'https://example.com/documents/court-contract.pdf',
category: 'Договоры',
tags: ['суд', 'представительство', 'гражданское дело']
},
{
id: 'doc-12',
title: 'Заявление в страховую компанию',
description: 'Образец заявления на получение выплаты по ОСАГО/КАСКО',
fileSize: '200 КБ',
fileType: 'docx',
downloadUrl: 'https://example.com/documents/insurance-application.docx',
category: 'Шаблоны',
tags: ['страховая', 'осаго', 'каско', 'выплата']
},
{
id: 'doc-13',
title: 'Доверенность на получение ТС',
description: 'Доверенность на получение транспортного средства из сервисного центра',
fileSize: '165 КБ',
fileType: 'docx',
downloadUrl: 'https://example.com/documents/vehicle-power-of-attorney.docx',
category: 'Доверенности',
tags: ['автомобиль', 'получение', 'сервис']
},
{
id: 'doc-14',
title: 'Список документов для обращения в суд',
description: 'Перечень необходимых документов для подачи искового заявления',
fileSize: '140 КБ',
fileType: 'pdf',
downloadUrl: 'https://example.com/documents/court-docs-list.pdf',
category: 'Памятки',
tags: ['суд', 'иск', 'документы', 'перечень']
},
{
id: 'doc-15',
title: 'Соглашение о конфиденциальности',
description: 'Документ о неразглашении информации, полученной в ходе оказания юридических услуг',
fileSize: '130 КБ',
fileType: 'pdf',
downloadUrl: 'https://example.com/documents/nda-agreement.pdf',
category: 'Документы',
tags: ['конфиденциальность', 'ndа', 'разглашение']
},
{
id: 'doc-16',
title: 'Архив шаблонов документов',
description: 'Полный архив всех шаблонов документов в формате ZIP',
fileSize: '4.5 МБ',
fileType: 'zip',
downloadUrl: 'https://example.com/documents/all-templates.zip',
category: 'Шаблоны',
tags: ['архив', 'шаблоны', 'все документы']
}
];
export const DOCUMENTS_PER_PAGE = 6;
export function getCategories(): string[] {
return ['Все', ...Array.from(new Set(documents.map(doc => doc.category)))];
}
export function filterByCategory(category: string): DocumentItem[] {
if (category === 'Все') return documents;
return documents.filter(doc => doc.category === category);
}
export function searchDocuments(query: string): DocumentItem[] {
const trimmed = query.trim().toLowerCase();
if (trimmed.length < 2) return [];
return documents.filter(doc =>
doc.title.toLowerCase().includes(trimmed) ||
doc.description.toLowerCase().includes(trimmed) ||
doc.category.toLowerCase().includes(trimmed) ||
(doc.tags && doc.tags.some(tag => tag.toLowerCase().includes(trimmed)))
);
}