import SwiftData
@Model class UserSession { var uid: String var lastLogin: Date
init(uid: String) {
self.uid = uid
self.lastLogin = Date()
}
}
mport SwiftUI import SwiftData
struct ContentView: View { @Query(sort: \UserSession.lastLogin, order: .reverse) private var sessions: [UserSession]
var body: some View {
if let lastSession = sessions.first {
HomeView(session: lastSession) // Auto-login if session exists
} else {
LoginView() // Show login if no session found
}
}
}
import SwiftUI import SwiftData
struct LoginView: View { @Environment(.modelContext) private var modelContext
var body: some View {
Button("Login") {
let uid = "123456" // Replace with actual user ID
let session = UserSession(uid: uid)
modelContext.insert(session) // Save session to SwiftData
}
}
}
import SwiftUI import SwiftData
struct HomeView: View { let session: UserSession
var body: some View {
VStack {
Text("Welcome back, \(session.uid)!")
Text("Last login: \(session.lastLogin.formatted(date: .abbreviated, time: .shortened))")
Button("Logout") {
// Handle logout by deleting the session
if let modelContext = Environment(\.modelContext).wrappedValue {
modelContext.delete(session)
}
}
}
}
}
var sharedModelContainer: ModelContainer = {
let schema = Schema([UserSession.self])
let container = try! ModelContainer(for: schema)
return container
}