{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Service Eligibility",
    "type": "object",
    "properties": {
        "pantryId": {
            "description": "[Output only] Unique ID of food pantry",
            "type": "string",
            "minLength": 1
        },
        "householdId": {
            "description": "Household ID of eligible household",
            "type": "string"
        },
        "serviceConfigId": {
            "description": "[Output only] Unique ID of service",
            "type": "string",
            "minLength": 1
        },
        "serviceName": {
            "description": "Name of service",
            "type": "string",
            "minLength": 1
        },
        "serviceType": {
            "description": "Type of the service",
            "type": "string",
            "enum": [
                "Full",
                "EFAP",
                "Supplemental",
                "Non-food",
                "Baby",
                "Other"
            ]
        },
        "occurrencesThisWeek": {
            "description": "Actual number of occurrences for service for particular household for current week",
            "type": "number"
        },
        "occurrencesThisMonth": {
            "description": "Actual number of occurrences for service for particular household for current month",
            "type": "number"
        },
        "servicesThisMonth": {
            "description": "Actual number of occurrences for ALL service for particular household for current month",
            "type": "number"
        },
        "maxOccurrencesInWeekPerHH": {
            "description": "Max occurrences of particular service per household per week",
            "type": "number"
        },
        "maxOccurrencesInMonthPerHH": {
            "description": "Max occurrences of particular service per household per month",
            "type": "number"
        },
        "minServicesInMonthPerHH": {
            "description": "Minimum number of services per household per month required for eligibility for service",
            "type": "number"
        },
        "isActive": {
            "description": "Flag to indicate if a service is active",
            "type": "boolean",
            "default": true
        },
        "isCommoditiesEligible": {
            "description": "Flag to indicate if a household is commodities eligible",
            "type": "boolean"
        },
        "isCommoditiesEligibleRequired": {
            "description": "Flag to indicate if a household must be commodities eligible to receive service",
            "type": "boolean",
            "default": false
        },
        "isHomeless": {
            "description": "Flag to indicate if a household is homeless",
            "type": "boolean"
        },
        "isHomelessRequired": {
            "description": "Flag to indicate if a household must be homeless to receive service",
            "type": "boolean",
            "default": false
        },
        "isHouseholdEligible": {
            "description": "Flag to indicate if a household is eligible for a particular service",
            "type": "boolean"
        },
        "isMeasuredInActualPounds": {
            "description": "Flag to indicate if a service is measured in actual pounds",
            "type": "boolean",
            "default": false
        },
        "numberPoundsFamilySize1": {
            "description": "Number of pounds allowed for service for family with size of 1",
            "type": "number"
        },
        "numberPoundsFamilySize2": {
            "description": "Number of pounds allowed for service for family with size of 2",
            "type": "number"
        },
        "numberPoundsFamilySize3": {
            "description": "Number of pounds allowed for service for family with size of 3",
            "type": "number"
        },
        "numberPoundsFamilySize4": {
            "description": "Number of pounds allowed for service for family with size of 4",
            "type": "number"
        },
        "numberPoundsFamilySize5": {
            "description": "Number of pounds allowed for service for family with size of 5",
            "type": "number"
        },
        "numberPoundsFamilySize6": {
            "description": "Number of pounds allowed for service for family with size of 6",
            "type": "number"
        },
        "numberPoundsFamilySize7": {
            "description": "Number of pounds allowed for service for family with size of 7",
            "type": "number"
        },
        "numberPoundsFamilySize8": {
            "description": "Number of pounds allowed for service for family with size of 8",
            "type": "number"
        },
        "numberPoundsFamilySize9": {
            "description": "Number of pounds allowed for service for family with size of 9",
            "type": "number"
        },
        "numberPoundsFamilySize10": {
            "description": "Number of pounds allowed for service for family with size of 10",
            "type": "number"
        },
        "numberPoundsFamilySizeDelta": {
            "description": "Number of incremental pounds allowed for service for each family member beyond 10",
            "type": "number"
        },
        "createdAt": {
            "description": "[Output only] Creation time of the user role",
            "type": "string",
            "format": "date-time",
            "minLength": 1
        },
        "createdBy": {
            "description": "[Output only] Creator of the user role",
            "type": "string",
            "minLength": 1
        },
        "updatedAt": {
            "description": "[Output only] Last modification time of the user role",
            "type": "string",
            "format": "date-time",
            "minLength": 1
        },
        "updatedBy": {
            "description": "[Output only] User to last modify the user role",
            "type": "string",
            "minLength": 1
        }
    },
    "required": [
        "serviceConfigId",
        "serviceName",
        "serviceType",
        "occurrencesThisWeek",
        "occurrencesThisMonth",
        "servicesThisMonth",
        "maxOccurrencesInWeekPerHH",
        "maxOccurrencesInMonthPerHH",
        "minServicesInMonthPerHH",
        "isActive",
        "isCommoditiesEligible",
        "isCommoditiesEligibleRequired",
        "isHomeless",
        "isHomelessRequired",
        "isHouseholdEligible",
        "isMeasuredInActualPounds",
        "numberPoundsFamilySize1",
        "numberPoundsFamilySize2",
        "numberPoundsFamilySize3",
        "numberPoundsFamilySize4",
        "numberPoundsFamilySize5",
        "numberPoundsFamilySize6",
        "numberPoundsFamilySize7",
        "numberPoundsFamilySize8",
        "numberPoundsFamilySize9",
        "numberPoundsFamilySize10",
        "numberPoundsFamilySizeDelta"
    ]
}