// πŸ‘₯ κ΅μ‚¬μš© 학생 계정 관리 ν™”λ©΄μ˜ κΈ°λŠ₯(μ„œλ²„ 톡신/μƒνƒœ) λ‹΄λ‹Ή 컨트둀러. import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:http/http.dart' as http; import '../config.dart'; class TeacherStudentManagementController extends ChangeNotifier { bool _isWorking = false; bool get isWorking => _isWorking; /// βž• 학생 계정 μΆ”κ°€. (성곡여뢀, λ©”μ‹œμ§€)λ₯Ό λ°˜ν™˜ν•œλ‹€ β€” UIκ°€ μ„±κ³΅ν–ˆμ„ λ•Œλ§Œ μž…λ ₯칸을 λΉ„μš΄λ‹€. Future<(bool success, String message)> addStudentAccount({ required String studentId, required String name, required String password, }) async { _isWorking = true; notifyListeners(); try { final url = Uri.parse('$baseUrl/api/users/register-student'); final response = await http.post( url, headers: {"Content-Type": "application/json"}, body: jsonEncode({ "studentId": studentId, "name": name, "password": password, }), ); final result = jsonDecode(utf8.decode(response.bodyBytes)); if (response.statusCode == 200 || response.statusCode == 201) { return (true, 'βœ… 계정 생성 μ™„λ£Œ: ${result['message'] ?? '성곡'}'); } else { return (false, '❌ 생성 μ‹€νŒ¨: ${result['message'] ?? '였λ₯˜ λ°œμƒ'}'); } } catch (e) { return (false, '🚨 λ„€νŠΈμ›Œν¬ μ—λŸ¬: $e'); } finally { _isWorking = false; notifyListeners(); } } /// ❌ 학생 계정 μ‚­μ œ. Future<(bool success, String message)> deleteStudentAccount( String studentId, ) async { _isWorking = true; notifyListeners(); final url = Uri.parse('$baseUrl/api/users/delete/$studentId'); try { final response = await http.delete(url); if (response.statusCode == 200) { final resData = jsonDecode(utf8.decode(response.bodyBytes)); return (true, 'βœ… ${resData['message']}'); } else { return (false, '❌ μ‚­μ œ μ‹€νŒ¨ν•˜μ˜€μŠ΅λ‹ˆλ‹€.'); } } catch (e) { return (false, '❌ μ„œλ²„ μ—λŸ¬ λ°œμƒ'); } finally { _isWorking = false; notifyListeners(); } } }