99 lines
2.8 KiB
Markdown
99 lines
2.8 KiB
Markdown
|
|
# avtourist
|
|||
|
|
|
|||
|
|
Проект: avtourist-surgut.ru — автоюрист в Сургуте.
|
|||
|
|
|
|||
|
|
Стек: Astro (SSR) + PocketBase + Tailwind CSS.
|
|||
|
|
|
|||
|
|
## Коллекции PocketBase
|
|||
|
|
|
|||
|
|
- `posts` — статьи блога
|
|||
|
|
- `reviews` — отзывы
|
|||
|
|
- `comments` — комментарии
|
|||
|
|
- `cases` — кейсы
|
|||
|
|
- `consultations` — консультации
|
|||
|
|
- `users` — пользователи
|
|||
|
|
- `post_votes` — голоса за посты
|
|||
|
|
|
|||
|
|
## Структура проекта
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
frontend/
|
|||
|
|
├── src/
|
|||
|
|
│ ├── pages/
|
|||
|
|
│ │ ├── index.astro # Главная
|
|||
|
|
│ │ ├── services/ # Услуги
|
|||
|
|
│ │ ├── cases/ # Кейсы
|
|||
|
|
│ │ ├── blog/ # Блог
|
|||
|
|
│ │ ├── api/ # API эндпоинты
|
|||
|
|
│ │ └── auth/ # Авторизация
|
|||
|
|
│ ├── layouts/ # Layouts
|
|||
|
|
│ ├── lib/ # PocketBase клиент
|
|||
|
|
│ └── globalInterfaces.ts # Типы
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Категории блога
|
|||
|
|
|
|||
|
|
- ДТП
|
|||
|
|
- Лишение прав
|
|||
|
|
- Страховые споры
|
|||
|
|
- Штрафы ГИБДД
|
|||
|
|
- Возмещение ущерба
|
|||
|
|
- Судебные дела
|
|||
|
|
|
|||
|
|
## Категории услуг
|
|||
|
|
|
|||
|
|
- Возврат прав
|
|||
|
|
- Оспаривание штрафов
|
|||
|
|
- Страховые споры (ОСАГО, КАСКО)
|
|||
|
|
- ДТП и здоровье
|
|||
|
|
- Представительство в суде
|
|||
|
|
- Обжалование постановлений
|
|||
|
|
|
|||
|
|
## Категории кейсов
|
|||
|
|
|
|||
|
|
- insurance — страховые
|
|||
|
|
- rights — лишение прав
|
|||
|
|
- accident — ДТП
|
|||
|
|
- court — судебные
|
|||
|
|
- consultation — консультации
|
|||
|
|
|
|||
|
|
## Компоненты
|
|||
|
|
|
|||
|
|
Использовать готовые компоненты из проекта:
|
|||
|
|
- ServiceCard — карточка услуги
|
|||
|
|
- CaseCard — карточка кейса
|
|||
|
|
- ReviewCard — карточка отзыва
|
|||
|
|
- ArticleCard — карточка статьи
|
|||
|
|
|
|||
|
|
## Типы
|
|||
|
|
|
|||
|
|
Все типы определены в `frontend/src/globalInterfaces.ts`:
|
|||
|
|
- Post
|
|||
|
|
- Review
|
|||
|
|
- Case
|
|||
|
|
- DocumentItem
|
|||
|
|
- CompanyInfo
|
|||
|
|
|
|||
|
|
## API-эндпоинты
|
|||
|
|
|
|||
|
|
- `/api/posts` — список постов
|
|||
|
|
- `/api/posts/[slug]` — один пост
|
|||
|
|
- `/api/reviews` — отзывы
|
|||
|
|
- `/api/comments` — комментарии
|
|||
|
|
- `/api/votes` — голоса
|
|||
|
|
- `/api/consultation` — форма консультации
|
|||
|
|
- `/api/auth/*` — авторизация
|
|||
|
|
|
|||
|
|
## Переменные окружения
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
PB_POCKETBASE_URL=http://127.0.0.1:8090
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Правила
|
|||
|
|
|
|||
|
|
1. Все запросы к PB — на сервере (frontmatter)
|
|||
|
|
2. Использовать типы из globalInterfaces.ts
|
|||
|
|
3. Не использовать any
|
|||
|
|
4. Компоненты — только .astro с Tailwind
|
|||
|
|
5. API-эндпоинты — в src/pages/api/
|