type ShortUrlResult {
    totalCount: Int
    count: Int
    nodes: [ShortUrl]
}

type ShortUrl implements DbModel {
    id: ID
    shortUrl: String
    targetUrl: String
    description: String
    visits: Int
    group: Group
    domain: Domain
    loadingScreen: Boolean

    deleted: Boolean
    editor: User
    createdUtc: String
    updatedUtc: String
}

input ShortUrlSort {
    id: SortOrder
    name: SortOrder
    description: SortOrder
    loadingScreen: SortOrder

    deleted: SortOrder
    editorId: SortOrder
    createdUtc: SortOrder
    updatedUtc: SortOrder
}

input ShortUrlFilter {
    id: IntFilter
    name: StringFilter
    description: StringFilter
    loadingScreen: BooleanFilter

    deleted: BooleanFilter
    editor: IntFilter
    createdUtc: DateFilter
    updatedUtc: DateFilter
}

type ShortUrlMutation {
    create(input: ShortUrlCreateInput!): ShortUrl
    update(input: ShortUrlUpdateInput!): ShortUrl
    delete(id: ID!): Boolean
    restore(id: ID!): Boolean
}

input ShortUrlCreateInput {
    shortUrl: String!
    targetUrl: String!
    description: String
    groupId: ID
    domainId: ID
    loadingScreen: Boolean
}

input ShortUrlUpdateInput {
    id: ID!
    shortUrl: String
    targetUrl: String
    description: String
    groupId: ID
    domainId: ID
    loadingScreen: Boolean
}
