# Path: APITaxi_models2/mixins.py
# class HistoryMixin:
#     added_at = db.Column(db.DateTime)
#     added_via = db.Column(db.Enum('form', 'api', name='sources'), nullable=False)
#     source = db.Column(db.String(255), nullable=False)
#     last_update_at = db.Column(db.DateTime)


from sqlalchemy import func
from sqlalchemy.dialects import postgresql
from sqlalchemy.ext.mutable import MutableList
from . import db
from .mixins import HistoryMixin
    'finished',
)

# All possible hail status
HAIL_STATUS = (
    'emitted',
    'received',
    'sent_to_operator',
    'received_by_operator',
    'received_by_taxi',
    'accepted_by_taxi',
    'accepted_by_customer',
    'customer_on_board',
    'incident_customer',
) + HAIL_TERMINAL_STATUS

REPORTING_CUSTOMER_REASONS = (
    'ko',  # Kept for backwards compatibility but not documented, 'no_show' is preferred
    'payment', 'courtesy', 'route', 'cleanliness', 'late', 'aggressive', 'no_show'
)

INCIDENT_CUSTOMER_REASONS = (
    '', 'mud_river', 'parade', 'earthquake'
)

INCIDENT_TAXI_REASONS = (
    'no_show', 'address', 'traffic', 'breakdown', 'traffic_jam', 'garbage_truck'
)

RATING_RIDE_REASONS = (

# Path: APITaxi_models2/mixins.py
# class HistoryMixin:
#     added_at = db.Column(db.DateTime)
#     added_via = db.Column(db.Enum('form', 'api', name='sources'), nullable=False)
#     source = db.Column(db.String(255), nullable=False)
#     last_update_at = db.Column(db.DateTime)


# Path: APITaxi_models2/hail.py
from sqlalchemy import func
from sqlalchemy.dialects import postgresql
from sqlalchemy.ext.mutable import MutableList
from . import db
from .mixins import HistoryMixin

    'finished',
)

# All possible hail status
HAIL_STATUS = (
    'emitted',
    'received',
    'sent_to_operator',
    'received_by_operator',
    'received_by_taxi',
    'accepted_by_taxi',
    'accepted_by_customer',
    'customer_on_board',
    'incident_customer',
) + HAIL_TERMINAL_STATUS

REPORTING_CUSTOMER_REASONS = (
    'ko',  # Kept for backwards compatibility but not documented, 'no_show' is preferred
    'payment', 'courtesy', 'route', 'cleanliness', 'late', 'aggressive', 'no_show'
)

INCIDENT_CUSTOMER_REASONS = (
    '', 'mud_river', 'parade', 'earthquake'
)

INCIDENT_TAXI_REASONS = (
    'no_show', 'address', 'traffic', 'breakdown', 'traffic_jam', 'garbage_truck'
)

RATING_RIDE_REASONS = (

    'ko', 'payment', 'courtesy', 'route', 'cleanliness', 'late',