From 38b7a327ab4a9396cd0d44d4e4ad3fa24a7686b7 Mon Sep 17 00:00:00 2001 From: Uddeshya Singh Date: Sun, 9 Jun 2019 10:49:19 +0530 Subject: [PATCH] add ticket_checks --- app/api/schema/ticket_fees.py | 4 ++-- app/models/ticket_fee.py | 2 ++ migrations/versions/a6e5abbcc205_.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 migrations/versions/a6e5abbcc205_.py diff --git a/app/api/schema/ticket_fees.py b/app/api/schema/ticket_fees.py index d980c3f2e8..ec8896f1f4 100644 --- a/app/api/schema/ticket_fees.py +++ b/app/api/schema/ticket_fees.py @@ -20,7 +20,7 @@ class Meta: inflect = dasherize id = fields.Integer(dump_only=True) - currency = fields.Str(validate=validate.OneOf(choices=PAYMENT_CURRENCY_CHOICES), allow_none=True) - country = fields.String(allow_none=True) + currency = fields.Str(validate=validate.OneOf(choices=PAYMENT_CURRENCY_CHOICES), allow_none=False) + country = fields.String(allow_none=False) service_fee = fields.Float(validate=lambda n: n >= 0, allow_none=True) maximum_fee = fields.Float(validate=lambda n: n >= 0, allow_none=True) diff --git a/app/models/ticket_fee.py b/app/models/ticket_fee.py index 803a40adce..f9547e58fd 100644 --- a/app/models/ticket_fee.py +++ b/app/models/ticket_fee.py @@ -1,4 +1,5 @@ from sqlalchemy import desc +from sqlalchemy.schema import UniqueConstraint from app.models import db @@ -8,6 +9,7 @@ class TicketFees(db.Model): """Persists service and maximum fees for a currency in a country""" __tablename__ = 'ticket_fees' + __table_args__ = (UniqueConstraint('currency', 'country', name='country_currency_uc'),) id = db.Column(db.Integer, primary_key=True) currency = db.Column(db.String) diff --git a/migrations/versions/a6e5abbcc205_.py b/migrations/versions/a6e5abbcc205_.py new file mode 100644 index 0000000000..b08ffce2f4 --- /dev/null +++ b/migrations/versions/a6e5abbcc205_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: a6e5abbcc205 +Revises: 89a5b836b406 +Create Date: 2019-06-09 10:36:35.767080 + +""" + +from alembic import op +import sqlalchemy as sa +import sqlalchemy_utils + + +# revision identifiers, used by Alembic. +revision = 'a6e5abbcc205' +down_revision = '89a5b836b406' + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_unique_constraint('country_currency_uc', 'ticket_fees', ['currency', 'country']) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint('country_currency_uc', 'ticket_fees', type_='unique') + # ### end Alembic commands ###