Implement initial song project domain models

This commit is contained in:
Codex
2026-09-13 13:18:08 +02:00
parent 57867bb3cc
commit 1993800f27
19 changed files with 1359 additions and 4 deletions
@@ -0,0 +1,11 @@
import SwiftUI
@main
struct MusicAssistantApp: App {
var body: some Scene {
WindowGroup {
RootView()
}
.windowStyle(.titleBar)
}
}
@@ -0,0 +1,45 @@
import MusicAssistantCore
import SwiftUI
struct RootView: View {
private let appName = "AI Music Studio"
private let boundarySummary = ProductBoundarySummary.initial
var body: some View {
NavigationSplitView {
List {
Label("Projects", systemImage: "music.note.list")
Label("Settings", systemImage: "gearshape")
}
.navigationTitle(appName)
} detail: {
VStack(alignment: .leading, spacing: 16) {
Text("New Song Project")
.font(.largeTitle.weight(.semibold))
Text(boundarySummary.description)
.font(.body)
.foregroundStyle(.secondary)
.frame(maxWidth: 560, alignment: .leading)
Divider()
VStack(alignment: .leading, spacing: 8) {
Text("Foundation status")
.font(.headline)
Label("Presentation, Domain, Services, Integrations, and Persistence boundaries are separated.", systemImage: "checkmark.circle")
Label("External providers are represented by protocols only.", systemImage: "lock.shield")
Label("Secrets are expected from local environment configuration.", systemImage: "key")
}
.labelStyle(.titleAndIcon)
}
.padding(32)
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
}
}
}
#Preview {
RootView()
}