PHPackages                             greekasoft/plan\_cooking\_calendar - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. greekasoft/plan\_cooking\_calendar

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

greekasoft/plan\_cooking\_calendar
==================================

Laravel пакет для планирования блюд по календарю

1.0.0(2mo ago)01MITVuePHP ^8.2

Since Feb 23Pushed 2mo agoCompare

[ Source](https://github.com/GreekIgor/packade-book-recipe)[ Packagist](https://packagist.org/packages/greekasoft/plan_cooking_calendar)[ RSS](/packages/greekasoft-plan-cooking-calendar/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

Plan Cooking Calendar
=====================

[](#plan-cooking-calendar)

Laravel пакет для планирования блюд по календарю. Позволяет пользователям создавать планы готовки на определенные даты, связывая их с рецептами из вашей кулинарной книги.

Требования
----------

[](#требования)

- PHP &gt;= 8.2
- Laravel &gt;= 11.0 или &gt;= 12.0
- Vue.js 3 (для использования Vue компонента)

Установка
---------

[](#установка)

### Через Composer

[](#через-composer)

```
composer require greekasoft/plan_cooking_calendar
```

### Публикация миграций

[](#публикация-миграций)

```
php artisan vendor:publish --tag=plan-cooking-calendar-migrations
```

### Публикация конфигурации (опционально)

[](#публикация-конфигурации-опционально)

```
php artisan vendor:publish --tag=plan-cooking-calendar-config
```

### Публикация Vue компонентов (опционально)

[](#публикация-vue-компонентов-опционально)

```
php artisan vendor:publish --tag=plan-cooking-calendar-assets
```

### Выполнение миграций

[](#выполнение-миграций)

```
php artisan migrate
```

Конфигурация
------------

[](#конфигурация)

После публикации конфигурации, вы можете настроить пакет в файле `config/plan-cooking-calendar.php`:

```
return [
    'route_prefix' => 'api/cooking-calendar',
    'middleware' => ['web', 'auth'],
    'recipe_model' => 'App\Models\Recipe',
    'user_model' => 'App\Models\User',
];
```

Использование
-------------

[](#использование)

### API Endpoints

[](#api-endpoints)

Пакет автоматически регистрирует следующие маршруты:

- `GET /api/cooking-calendar` - Получить список планов (поддерживает параметры `start_date`, `end_date`, `month`, `year`)
- `GET /api/cooking-calendar/date/{date}` - Получить планы на конкретную дату
- `POST /api/cooking-calendar` - Создать новый план
- `GET /api/cooking-calendar/{id}` - Получить конкретный план
- `PUT /api/cooking-calendar/{id}` - Обновить план
- `DELETE /api/cooking-calendar/{id}` - Удалить план
- `PATCH /api/cooking-calendar/{id}/toggle-complete` - Переключить статус выполнения

### Использование модели

[](#использование-модели)

```
use Greekasoft\PlanCookingCalendar\Models\CookingPlan;

// Создать план
$plan = CookingPlan::create([
    'user_id' => auth()->id(),
    'recipe_id' => 1,
    'planned_date' => '2024-01-15',
    'planned_time' => '18:00',
    'servings' => 4,
    'notes' => 'Ужин для семьи',
]);

// Получить планы на дату
$plans = CookingPlan::forDate('2024-01-15')->get();

// Получить планы за период
$plans = CookingPlan::forDateRange('2024-01-01', '2024-01-31')->get();

// Получить только выполненные планы
$completed = CookingPlan::completed()->get();

// Получить только невыполненные планы
$pending = CookingPlan::pending()->get();
```

### Использование Vue компонента

[](#использование-vue-компонента)

После публикации Vue компонента, импортируйте его в ваше приложение:

```
import CookingCalendar from './vendor/plan-cooking-calendar/CookingCalendar.vue';

// В вашем компоненте или app.js
app.component('CookingCalendar', CookingCalendar);
```

Затем используйте в шаблоне:

```

```

Или в Blade шаблоне:

```

@vite(['resources/js/app.js'])
```

**Важно:** Убедитесь, что у вас настроен API endpoint для получения списка рецептов. Компонент ожидает ответ от `/api/recipes` или `/recipe-list`. При необходимости измените метод `loadRecipes()` в компоненте.

Структура базы данных
---------------------

[](#структура-базы-данных)

Пакет создает таблицу `cooking_plans` со следующими полями:

- `id` - ID плана
- `user_id` - ID пользователя (связь с таблицей users)
- `recipe_id` - ID рецепта (связь с таблицей recipes)
- `planned_date` - Запланированная дата
- `planned_time` - Запланированное время (опционально)
- `servings` - Количество порций
- `notes` - Заметки
- `is_completed` - Статус выполнения
- `created_at`, `updated_at` - Временные метки

Минимальные требования
----------------------

[](#минимальные-требования)

Пакет требует следующие зависимости:

- `php >= 8.2`
- `illuminate/support ^11.0|^12.0`
- `illuminate/database ^11.0|^12.0`
- `illuminate/routing ^11.0|^12.0`
- `illuminate/http ^11.0|^12.0`

Публикация на Packagist
-----------------------

[](#публикация-на-packagist)

1. Создайте репозиторий на GitHub
2. Добавьте теги версий (например, `v1.0.0`)
3. Зарегистрируйте пакет на [packagist.org](https://packagist.org)
4. Укажите URL вашего репозитория

Лицензия
--------

[](#лицензия)

MIT

Автор
-----

[](#автор)

Igor Morozov ()

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance83

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

84d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4335b46840320a597e26b937c1baabe1d8db3737f4ed24f026584888ef327197?d=identicon)[GreekIgor87](/maintainers/GreekIgor87)

---

Top Contributors

[![GreekIgor](https://avatars.githubusercontent.com/u/40692365?v=4)](https://github.com/GreekIgor "GreekIgor (1 commits)")

---

Tags

laravelcalendarrecipeplanningcooking

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/greekasoft-plan-cooking-calendar/health.svg)

```
[![Health](https://phpackages.com/badges/greekasoft-plan-cooking-calendar/health.svg)](https://phpackages.com/packages/greekasoft-plan-cooking-calendar)
```

###  Alternatives

[yajra/laravel-datatables-oracle

jQuery DataTables API for Laravel

4.9k33.8M339](/packages/yajra-laravel-datatables-oracle)[psalm/plugin-laravel

Psalm plugin for Laravel

3274.9M308](/packages/psalm-plugin-laravel)[spatie/laravel-enum

Laravel Enum support

3655.4M31](/packages/spatie-laravel-enum)[watson/active

Laravel helper for recognising the current route, controller and action

3253.6M14](/packages/watson-active)[dragon-code/pretty-routes

Pretty Routes for Laravel

10058.7k4](/packages/dragon-code-pretty-routes)[bjuppa/laravel-blog

Add blog functionality to your Laravel project

483.3k2](/packages/bjuppa-laravel-blog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
