from baserow.contrib.database.fields.dependencies.models import FieldDependency
from baserow.core.models import Application

from .fields.models import (
    BooleanField,
    DateField,
    EmailField,
    Field,
    LinkRowField,
    LongTextField,
    NumberField,
    PhoneNumberField,
    RatingField,
    TextField,
    URLField,
)
from .table.models import Table
from .tokens.models import Token, TokenPermission
from .views.models import (
    FormView,
    FormViewFieldOptions,
    GalleryView,
    GalleryViewFieldOptions,
    GridView,
    GridViewFieldOptions,
    View,
    ViewFilter,
)
from .webhooks.models import (
    TableWebhook,
    TableWebhookCall,
    TableWebhookEvent,
    TableWebhookHeader,
)

__all__ = [
    "Database",
    "Table",
    "View",
    "GridView",
    "GridViewFieldOptions",
    "GalleryView",
    "GalleryViewFieldOptions",
    "FormView",
    "FormViewFieldOptions",
    "ViewFilter",
    "Field",
    "TextField",
    "NumberField",
    "RatingField",
    "LongTextField",
    "BooleanField",
    "DateField",
    "LinkRowField",
    "URLField",
    "EmailField",
    "PhoneNumberField",
    "Token",
    "TokenPermission",
    "TableWebhook",
    "TableWebhookEvent",
    "TableWebhookHeader",
    "TableWebhookCall",
    "FieldDependency",
]


class Database(Application):
    def get_parent(self):
        return self.application_ptr
