20 lines
472 B
Swift
20 lines
472 B
Swift
public protocol AIService: Sendable {
|
|
func planSongProject(from request: SongPlanningRequest) async throws -> SongPlanningDraft
|
|
}
|
|
|
|
public struct SongPlanningRequest: Equatable, Sendable {
|
|
public let userIntent: String
|
|
|
|
public init(userIntent: String) {
|
|
self.userIntent = userIntent
|
|
}
|
|
}
|
|
|
|
public struct SongPlanningDraft: Equatable, Sendable {
|
|
public let summary: String
|
|
|
|
public init(summary: String) {
|
|
self.summary = summary
|
|
}
|
|
}
|