diff --git a/app/models.py b/app/models.py index 91294c15d..fac1458cb 100644 --- a/app/models.py +++ b/app/models.py @@ -132,6 +132,17 @@ class Service(db.Model, Versioned): ) +class ServiceWhitelist(db.Model): + __tablename__ = 'service_whitelist' + + id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + service_id = db.Column(UUID(as_uuid=True), db.ForeignKey('services.id'), index=True, nullable=False) + service = db.relationship('Service', backref='whitelist') + email_address = db.Column(db.String(255), nullable=True) + mobile_number = db.Column(db.String, nullable=True) + created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow) + + class ApiKey(db.Model, Versioned): __tablename__ = 'api_keys' diff --git a/migrations/versions/0055_service_whitelist.py b/migrations/versions/0055_service_whitelist.py new file mode 100644 index 000000000..b2457833f --- /dev/null +++ b/migrations/versions/0055_service_whitelist.py @@ -0,0 +1,31 @@ +"""add service whitelist table + +Revision ID: 0055_service_whitelist +Revises: 0054_perform_drop_status_column +Create Date: 2016-09-20 12:12:30.838095 + +""" + +# revision identifiers, used by Alembic. +revision = '0055_service_whitelist' +down_revision = '0054_perform_drop_status_column' + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +def upgrade(): + op.create_table('service_whitelist', + sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('service_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('email_address', sa.String(length=255), nullable=True), + sa.Column('mobile_number', sa.String(), nullable=True), + sa.Column('created_at', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['service_id'], ['services.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_service_whitelist_service_id'), 'service_whitelist', ['service_id'], unique=False) + + +def downgrade(): + op.drop_table('service_whitelist')