class ChurnRequestSchema(Schema):
gender = fields.Str(
required=True,
validate=validate.OneOf(["male", "female"]),
metadata={"enum": ["male", "female"]},
)
seniorcitizen = fields.Int(
required=True,
validate=validate.OneOf([0, 1]),
metadata={"enum": [0, 1]},
)
partner = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no"]),
metadata={"enum": ["yes", "no"]},
)
dependents = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no"]),
metadata={"enum": ["yes", "no"]},
)
phoneservice = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no"]),
metadata={"enum": ["yes", "no"]},
)
multiplelines = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no", "no_phone_service"]),
metadata={"enum": ["yes", "no", "no_phone_service"]},
)
internetservice = fields.Str(
required=True,
validate=validate.OneOf(["dsl", "fiber_optic", "no"]),
metadata={"enum": ["dsl", "fiber_optic", "no"]},
)
onlinesecurity = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no", "no_internet_service"]),
metadata={"enum": ["yes", "no", "no_internet_service"]},
)
onlinebackup = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no", "no_internet_service"]),
metadata={"enum": ["yes", "no", "no_internet_service"]},
)
deviceprotection = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no", "no_internet_service"]),
metadata={"enum": ["yes", "no", "no_internet_service"]},
)
techsupport = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no", "no_internet_service"]),
metadata={"enum": ["yes", "no", "no_internet_service"]},
)
streamingtv = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no", "no_internet_service"]),
metadata={"enum": ["yes", "no", "no_internet_service"]},
)
streamingmovies = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no", "no_internet_service"]),
metadata={"enum": ["yes", "no", "no_internet_service"]},
)
contract = fields.Str(
required=True,
validate=validate.OneOf(["month-to-month", "one_year", "two_year"]),
metadata={"enum": ["month-to-month", "one_year", "two_year"]},
)
paperlessbilling = fields.Str(
required=True,
validate=validate.OneOf(["yes", "no"]),
metadata={"enum": ["yes", "no"]},
)
paymentmethod = fields.Str(
required=True,
validate=validate.OneOf(
[
"bank_transfer",
"credit_card",
"electronic_check",
"mailed_check",
]
),
metadata={
"enum": [
"bank_transfer",
"credit_card",
"electronic_check",
"mailed_check",
]
},
)
tenure = fields.Int(
required=True,
validate=validate.Range(min=0),
metadata={"minimum": 0},
)
monthlycharges = fields.Float(
required=True,
validate=validate.Range(min=0),
metadata={"minimum": 0},
)
totalcharges = fields.Float(
required=True,
validate=validate.Range(min=0),
metadata={"minimum": 0},
)
class ChurnResponseSchema(Schema):
churn_probability = fields.Float()
churn = fields.Bool()