enum PayeeType {
    COLLABORATOR
}

type Payee {
    actionStates: [AbacusState!]!
    bankDetails: PayeeRegistrationDetails
    payeeCollaborator: PayeeCollaborator
    payeeId: ID!
    payeeKycNotification: PayeeKycNotification
    payeeName: String
    payeeType: PayeeType!
    payoneerAssignedId: Int
    payoneerClientReferenceId: ID!
    payoneerProgram: AbacusReferencePayoneerProgram
    referencePaymentType: AbacusReferencePaymentType!
}

type PayeePaginatedList {
    items: [Payee!]!
    totalCount: Int!
}

extend type Query {
    abacusPayees(
        limit: Int! = 100,
        offset: Int! = 0,
        requiresReview: Boolean = false,
        searchTerm: String,
        abacusStates: [AbacusStateInput!],
        accountIds: [ID!],
        payoneerProgramIds: [Int!],
    ): PayeePaginatedList!
}

extend type Mutation {
    releaseAbacusPayee(payeeId: ID!): ID!
}
