// ✍️ 커뮤니티 게시판 - 글쓰기 화면의 기능(서버 통신/상태) 담당 컨트롤러. import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:http/http.dart' as http; import '../config.dart'; class BoardWriteController extends ChangeNotifier { final String studentId; BoardWriteController({required this.studentId}); bool _isSubmitting = false; bool get isSubmitting => _isSubmitting; Future<(bool success, String message)> submit({ required String category, required String title, required String content, }) async { if (title.trim().isEmpty || content.trim().isEmpty) { return (false, '제목과 내용을 입력해주세요.'); } _isSubmitting = true; notifyListeners(); try { final response = await http.post( Uri.parse('$baseUrl/api/board/posts'), headers: {"Content-Type": "application/json"}, body: jsonEncode({ "studentId": studentId, "category": category, "title": title.trim(), "content": content.trim(), }), ); final result = jsonDecode(utf8.decode(response.bodyBytes)); if (response.statusCode == 200 && result['status'] == 'success') { return (true, '게시글이 등록되었습니다.'); } return (false, '${result['message'] ?? '게시글 등록 실패'}'); } catch (e) { return (false, '네트워크 에러: $e'); } finally { _isSubmitting = false; notifyListeners(); } } }