mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-01 15:46:07 -05:00
Merge pull request #1764 from alphagov/vb_billing_model
Add billing models and small alteration to billing tables (Pivotal #155511547)
This commit is contained in:
@@ -11,7 +11,7 @@ from sqlalchemy.dialects.postgresql import (
|
||||
UUID,
|
||||
JSON
|
||||
)
|
||||
from sqlalchemy import UniqueConstraint, CheckConstraint
|
||||
from sqlalchemy import UniqueConstraint, CheckConstraint, Index
|
||||
from notifications_utils.columns import Columns
|
||||
from notifications_utils.recipients import (
|
||||
validate_email_address,
|
||||
@@ -1725,3 +1725,44 @@ class DailySortedLetter(db.Model):
|
||||
unsorted_count = db.Column(db.Integer, nullable=False, default=0)
|
||||
sorted_count = db.Column(db.Integer, nullable=False, default=0)
|
||||
updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow)
|
||||
|
||||
|
||||
class FactBilling(db.Model):
|
||||
__tablename__ = "ft_billing"
|
||||
|
||||
bst_date = db.Column(db.Date, nullable=False, primary_key=True, index=True)
|
||||
template_id = db.Column(UUID(as_uuid=True), nullable=True, primary_key=True, index=True)
|
||||
service_id = db.Column(UUID(as_uuid=True), nullable=True, index=True)
|
||||
organisation_id = db.Column(UUID(as_uuid=True), nullable=True)
|
||||
annual_billing_id = db.Column(UUID(as_uuid=True), nullable=True)
|
||||
notification_type = db.Column(db.Text, nullable=True)
|
||||
provider = db.Column(db.Text, nullable=True)
|
||||
crown = db.Column(db.Text, nullable=True)
|
||||
rate_multiplier = db.Column(db.Numeric(), nullable=True)
|
||||
international = db.Column(db.Boolean, nullable=True)
|
||||
rate = db.Column(db.Numeric(), nullable=True)
|
||||
billable_units = db.Column(db.Numeric(), nullable=True)
|
||||
notifications_sent = db.Column(db.Integer(), nullable=True)
|
||||
|
||||
|
||||
class DateTimeDimension(db.Model):
|
||||
__tablename__ = "dm_datetime"
|
||||
bst_date = db.Column(db.Date, nullable=False, primary_key=True, index=True)
|
||||
year = db.Column(db.Integer(), nullable=False)
|
||||
month = db.Column(db.Integer(), nullable=False)
|
||||
month_name = db.Column(db.Text(), nullable=False)
|
||||
day = db.Column(db.Integer(), nullable=False)
|
||||
bst_day = db.Column(db.Integer(), nullable=False)
|
||||
day_of_year = db.Column(db.Integer(), nullable=False)
|
||||
week_day_name = db.Column(db.Text(), nullable=False)
|
||||
calendar_week = db.Column(db.Integer(), nullable=False)
|
||||
quartal = db.Column(db.Text(), nullable=False)
|
||||
year_quartal = db.Column(db.Text(), nullable=False)
|
||||
year_month = db.Column(db.Text(), nullable=False)
|
||||
year_calendar_week = db.Column(db.Text(), nullable=False)
|
||||
financial_year = db.Column(db.Integer(), nullable=False)
|
||||
utc_daytime_start = db.Column(db.DateTime, nullable=False)
|
||||
utc_daytime_end = db.Column(db.DateTime, nullable=False)
|
||||
|
||||
|
||||
Index('ix_dm_datetime_yearmonth', DateTimeDimension.year, DateTimeDimension.month)
|
||||
|
||||
Reference in New Issue
Block a user