// Generated by Create API
// https://github.com/CreateAPI/CreateAPI

import Foundation
import Get
import URLQueryEncoder

extension Paths.Video.Hooks.Comments.WithHookId {
    public var timeSyncComments: TimeSyncComments {
        TimeSyncComments(path: path + "/time-sync-comments")
    }

    public struct TimeSyncComments {
        /// Path: `/api/video/hooks/comments/{hook_id}/time-sync-comments`
        public let path: String

        /// Get Time Sync Comments
        ///
        /// Get time-synchronized comments for a clip.
        public func get(parameters: GetParameters) -> Request<[GenAPI.CommentSchema]> {
            Request(path: path, method: "GET", query: parameters.asQuery, id: "studio_api_video_hooks_comments_api_get_time_sync_comments")
        }

        public struct GetParameters {
            public var searchTime: Int
            public var searchRange: Int?
            public var margin: Int?
            public var numRequested: Int?
            public var endTime: Int?

            public init(searchTime: Int, searchRange: Int? = nil, margin: Int? = nil, numRequested: Int? = nil, endTime: Int? = nil) {
                self.searchTime = searchTime
                self.searchRange = searchRange
                self.margin = margin
                self.numRequested = numRequested
                self.endTime = endTime
            }

            public var asQuery: [(String, String?)] {
                let encoder = URLQueryEncoder()
                encoder.encode(searchTime, forKey: "search_time")
                encoder.encode(searchRange, forKey: "search_range")
                encoder.encode(margin, forKey: "margin")
                encoder.encode(numRequested, forKey: "num_requested")
                encoder.encode(endTime, forKey: "end_time")
                return encoder.items
            }
        }
    }
}
