From 70e88433ce852f13a25d15e92882041f4d30cda7 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Sun, 23 Feb 2025 12:41:33 +0100 Subject: [PATCH] Add date type and context columns to meal --- CHANGELOG.md | 1 + common/models/Meal.php | 11 +++++++- ..._add_type_date_context_columns_to_meal.php | 27 +++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 console/migrations/m250223_111753_add_type_date_context_columns_to_meal.php diff --git a/CHANGELOG.md b/CHANGELOG.md index c063719..0212ab5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * API for registering and login * API for fetching meals, summary, and posting meal * JWT tokens for API requests +* Date, type, and context as columns to the meal ### Changed diff --git a/common/models/Meal.php b/common/models/Meal.php index 65f74a1..149a64d 100644 --- a/common/models/Meal.php +++ b/common/models/Meal.php @@ -12,7 +12,9 @@ use yii\web\UnauthorizedHttpException; * * @property int $id * @property string $file_name + * @property string $context * @property string $food_name + * @property string $type * @property int $calories * @property int $protein * @property int $fat @@ -26,6 +28,10 @@ class Meal extends ActiveRecord { public $base64File; + public const BREAKFAST = 'breakfast'; + public const LUNCH = 'lunch'; + public const DINNER = 'dinner'; + public const OTHER = 'other'; /** * {@inheritdoc} @@ -55,8 +61,11 @@ class Meal extends ActiveRecord public function rules() { return [ - [['food_name', 'calories', 'protein', 'fat', 'carbohydrates', 'fiber'], 'required'], + [['date', 'food_name', 'calories', 'protein', 'fat', 'carbohydrates', 'fiber', 'type'], 'required'], [['user_id', 'calories', 'protein', 'fat', 'carbohydrates', 'fiber', 'created_at', 'updated_at'], 'integer'], + [['date'], 'date'], + [['type', 'context'], 'string'], + [['type'], 'in', 'range' => [self::BREAKFAST, self::LUNCH, self::DINNER, self::OTHER]], [['file_name'], 'string', 'max' => 255], ]; } diff --git a/console/migrations/m250223_111753_add_type_date_context_columns_to_meal.php b/console/migrations/m250223_111753_add_type_date_context_columns_to_meal.php new file mode 100644 index 0000000..7c4b3e0 --- /dev/null +++ b/console/migrations/m250223_111753_add_type_date_context_columns_to_meal.php @@ -0,0 +1,27 @@ +addColumn('{{%meal}}', 'type', $this->string()->null()); // nullable because existing user data + $this->addColumn('{{%meal}}', 'date', $this->date()->null()); // nullable because existing user data + $this->addColumn('{{%meal}}', 'context', $this->string(100)->null()); + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + $this->dropColumn('{{%meal}}', 'type'); + $this->dropColumn('{{%meal}}', 'date'); + $this->dropColumn('{{%meal}}', 'context'); + } + +}