Improve FoodItem uniqueness and add name constraint

Refactored add_meal routes to check for existing FoodItems by name or barcode and improved form handling. Made barcode optional in FoodItemForm. Added a unique constraint on (name, owner_id) for FoodItem in both the model and database migrations, while retaining the (barcode, owner_id) constraint. Updated FoodItem relationship to cascade deletes.
This commit is contained in:
2025-08-11 14:32:53 +02:00
parent ad7f787ce5
commit 7fe30bfebf
5 changed files with 134 additions and 46 deletions

View File

@@ -0,0 +1,32 @@
"""empty message
Revision ID: f5fbbe915d51
Revises: 99f86450e4af
Create Date: 2025-08-11 12:37:02.407643
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'f5fbbe915d51'
down_revision = '99f86450e4af'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('food_item', schema=None) as batch_op:
batch_op.create_unique_constraint('barcode_owner_key', ['barcode', 'owner_id'])
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('food_item', schema=None) as batch_op:
batch_op.drop_constraint('barcode_owner_key', type_='unique')
# ### end Alembic commands ###