extend type Query {
    "franchies"
    franchies(
        "Filters by name. Accepts SQL LIKE wildcards `%` and `_`."
        name: String @where(operator: "like")
        is_franchises_active: String @where(operator: "like")
        orderBy: [OrderByClause!] @orderBy
    ): [Franchises!]! @all(model: "App\\Models\\franchises\\Franchises")

    "Get  franchie by id  or email"
    franchie(
        "Search by primary key."
        id: ID @eq

        slug: String @eq
    ): Franchises @find(model: "App\\Models\\franchises\\Franchises")

    FranchieDetails(
        "Search by primary key."
        id: ID @eq

        slug: String @eq
    ): Franchises
        @complexity(resolver: "App\\GraphQl\\Queries\\FranchieDetails")

    FranchiseCmsDataNew(
        "Search by franchise_id key."
        franchise_id: ID @eq

        slug: String @eq

        "Search by type ."
        type: String @eq
    ): Franchises
        @complexity(resolver: "App\\GraphQl\\Queries\\FranchiseCmsDataNew")

    findAVenue(filter: String): [Franchise_venue_information!]
        @complexity(resolver: "App\\GraphQl\\Queries\\FindAVenue")

    findAVenueByFranchiseId(
        "Search by franchise_id key."
        franchise_id: ID
    ): [Franchise_venue_information!]
        @complexity(resolver: "App\\GraphQl\\Queries\\FindAVenueByFranchiseId")

    franchiseBirthdayParties(
        "Search by primary key."
        franchise_id: ID @eq
        slug: String @eq
    ): Franchise_birthday_parties
        @complexity(resolver: "App\\GraphQl\\Queries\\FranchiseBirthdayParties")

    franchiseUsers(
        "Search by primary key."
        franchise_id: ID @eq
        slug: String @eq
    ): [User!] @complexity(resolver: "App\\GraphQl\\Queries\\FranchiseUsers")
}

input OrderByClause {
  column: String!
  order: SortOrder!
}

enum SortOrder {
  ASC
  DESC
}

type Franchises {
    id: ID!
    name: String!
    slug: String
    type: String!
    email: String!
    code: String!
    company_name: String!
    certificate_generation: String!
    franchise_address: [Franchise_address!]
    franchise_address_business: Franchise_address
    franchise_venue: [Franchise_venue_information!]
    franchise_cms: Franchise_cms
    franchise_cms_single: Franchise_cms_single
    franchise_cms_with_general_tab_data: Franchise_cms_single
    franchise_user: [FranchiseUser!]
    franchise_birthday_parties: Franchise_birthday_parties
    franchise_cms_faq: [Franchise_cms_faq!]
    franchise_owner_details: [Franchise_owner_detail!]
    franchise_payment_single: Franchise_payment_single
    franchise_booking_contact_info: FranchiseBookingContactInfo
    classes: [Classes]
    is_birthday_parties: Boolean
    is_team: Boolean
    is_location: Boolean
    is_classes: Boolean
    rating_count: Float
    review_count: Int
    next_classes_day: String
    trustist_code: String
    franchise_next_term: String
    franchises_social_channels: [FranchisesSocialChannels]
}

type FranchisesSocialChannels {
    id: ID
    name: String
    icon: String
    link: String
}

type FranchiseBookingContactInfo {
    id: ID
    franchise_id: Int
    type: String
    firstname: String
    lastname: String
    email: String
    phone: String
    dob: String
    same_owner: String
}

type Franchise_payment_single {
    id: ID!
    franchise_id: Int
    payment_method: String
}

"Get Franchise CMS Pages Api"
type Franchise_cms {
    "Unique primary key."
    id: ID!
    franchise_id: ID!
    type: String!
    header: String!
    header_description: String!
    media_type: String!
    image: String!
    image_label: String!
    title: String!
    keywords: String!
    seo_description: String!
    paragraphs: String!
    franchise: Franchises!
}

type Franchise_cms_single {
    "Unique primary key."
    id: ID!
    franchise_id: ID!
    type: String
    header: String
    header_description: String
    media_type: String
    image: String
    full_image: String
    image_label: String
    title: String
    keywords: String
    seo_description: String
    paragraphs: String
    franchise: Franchises!
    about_deshtop_thumbnail: String
    about_mobile_thumbnail: String
    youtube_link: String
    vimeo_link: String
    vimeo_auto_play: String
    youtube_auto_play: String
    video_auto_play: String
}

type Franchise_address {
    "Unique primary key."
    id: ID!
    type: String!
    address1: String!
    address2: String
    address3: String
    postcode: String!
    county: String
    country: String!
}

type Franchise_venue_information {
    "Unique primary key."
    id: ID!
    name: String!
    venue_class: String
    address1: String!
    address2: String
    address3: String
    postcode: String!
    county: String
    country: String!
    phone: String
    email: String
    franchise_id: Int!
    parking: String
    parking_detail: String
    lat: String
    lng: String
    facilities: [Venue_facility!]
    address_venues_nearby: [Franchise_nearby_venue!]
    franchise: Franchises!
    venue_ratting: Float!
    venue_image: String
    venue_map_image: String
    distance: String
    duration: String
    text: String
    rating_count: Float
    review_count: Int
}

type Venue_facility {
    id: Int
    facility_name: String
    value: String
    facilityicon: facilityicon
    description: String
}

type facilityicon {
    text_data: String
    json_data: String
        @field(
            resolver: "App\\GraphQL\\Resolvers\\JsonDataResolver@facilityImage"
        )
}

type Franchise_nearby_venue {
    id: ID!
    name: String!
    address1: String!
    address2: String
    address3: String
    postcode: String!
    county: String
    country: String!
    franchise_id: Int!
    phone: String
    distance: String
    duration: String
    text: String
    lat: String
    lng: String
}

type Franchise_birthday_parties {
    id: ID!
    show: Int!
    birthday_image: String!
    birthday_image_label: String!
    what_does_jigsaw_provide: String!
    what_do_i_need_to_provide: String!
    what_do_i_need_to_provide_image: String!
    what_do_i_need_to_provide_label: String!
    cost_and_booking_desc: String!
    cost_and_booking_image: String!
    cost_and_booking_label: String!
    seo_title: String!
    seo_keywords: String!
    seo_description: String!
    franchise: Franchises!
    birthday_image_full_url: String
    cost_and_booking_image_full_url: String
    what_do_i_need_to_provide_image_full_url: String
}

type Franchise_cms_faq {
    id: ID!
    franchise_id: String!
    question: String!
    answer: String!
}

type Franchise_owner_detail {
    id: ID!
    type: String!
    firstname: String!
    lastname: String!
    email: String!
    phone: String!
    dob: String!
}

type FranchiseUser {
    id: ID!
    user_id: Int!
    franchise_id: Int!
    teams: [User]
    team: User
    team_active: User
}

type User {
    id: ID!
    name: String!
    firstname: String
    lastname: String
    job_title: String
    role_id: ID!
    image: String
    admin_role_join: Roles_model
    userEmployment: [UserEmployment!]
    userEmploymentSingle: UserEmployment
}

type Roles_model {
    id: ID!
    name: String!
}
type UserEmployment {
    id: ID!
    name: String
    profile: String
    bio_description: String
    full_image_name: String
}
