# -*- coding: utf-8 -*-
# ----  AUTO-GENERATED BY redox_lib_gen. DO NOT MODIFY MANUALLY!!  ---- #

from typing import List, Union

from pydantic import Field

from pyredox import referral
from ..abstract_base import GenericRedoxAbstractModel
from . import types as generic


class _Referral(GenericRedoxAbstractModel):
    _redox_module = referral


class AuthResponse(_Referral):

    Authorization: generic.Authorization = Field(None)
    Meta: generic.Meta = Field(...)
    Patient: generic.Patient = Field(...)
    Referral: generic.Referral = Field(None)


class AuthReview(_Referral):

    Authorization: generic.Authorization = Field(None)
    Meta: generic.Meta = Field(...)
    Patient: generic.Patient = Field(...)
    Referral: generic.Referral = Field(None)


class Cancel(_Referral):

    Meta: generic.Meta = Field(...)
    Patient: generic.Patient = Field(...)
    Referral: generic.Referral = Field(None)
    Visit: generic.Visit = Field(None)


class Modify(_Referral):

    Meta: generic.Meta = Field(...)
    Patient: generic.Patient = Field(...)
    Referral: generic.Referral = Field(None)
    Visit: generic.Visit = Field(None)


class New(_Referral):

    Meta: generic.Meta = Field(...)
    Patient: generic.Patient = Field(...)
    Referral: generic.Referral = Field(None)
    Visit: generic.Visit = Field(None)


class Query(_Referral):

    Meta: generic.Meta = Field(...)
    Patient: generic.Patient = Field(...)


class QueryResponse(_Referral):

    Meta: generic.Meta = Field(...)
    Referrals: List[generic.Referral] = Field(None)
