class DisruptionSerializer(PbNestedSerializer): id = jsonschema.Field(schema_type=str, display_none=True, attr='uri') disruption_id = jsonschema.Field(schema_type=str, attr='disruption_uri') impact_id = jsonschema.Field(schema_type=str, attr='uri') title = (jsonschema.Field(schema_type=str), ) application_periods = PeriodSerializer(many=True) status = EnumField(attr='status', pb_type=ActiveStatus) updated_at = DateTimeField() tags = StringListField(display_none=False) cause = jsonschema.Field(schema_type=str, display_none=True) category = jsonschema.MethodField(schema_type=str, display_none=False) def get_category(self, obj): if obj.HasField(str("category")) and obj.category: return obj.category return None severity = SeveritySerializer() messages = MessageSerializer(many=True) impacted_objects = ImpactedSerializer(many=True, display_none=False) uri = jsonschema.Field(schema_type=str, attr='uri') disruption_uri = jsonschema.Field(schema_type=str) contributor = jsonschema.Field(schema_type=str, display_none=True) properties = DisruptionPropertySerializer(many=True, display_none=False)
class CurrentAvailabilitySerializer(PbNestedSerializer): status = EnumField( pb_type=CurrentAvailability.EquipmentStatus, display_none=False, required=False # type: ignore ) periods = PeriodSerializer(many=True, display_none=False, required=False) updated_at = base.PbStrField(display_none=False, required=False) cause = CauseSerializer(display_none=False, required=False) effect = EffectSerializer(display_none=False, required=False)