프로젝트/[Team]🥇 A+ Market 중고 거래 플랫폼 앱
[작업일지] 2025.01.21(화) - 홈, 채팅 화면 구현 및 모델링 클래스 구현
subindev
2025. 1. 21. 17:48
오늘의 작업
- 채팅 리스트 화면 구현
- 채팅 방 화면 구현
- 홈 메인 화면 구현
- 모델링 클래스 설계 및 더미 데이터 추가 (상품 | 채팅방 | 채팅메시지)
내일 목표
- 현재 MV를 MV VM 패턴으로 분리하기
- 채팅방 화면 디테일 - 키보드가 나오거나 입력한 뒤 최근 메시지가 제일 아래에 보이도록 설정
- 홈 화면 디테일 잡기
- 상품 보기 화면 구현
구현화면 (결과)
// chatting_room Page 사용
class ChatRoom {
final int chat_room_id;
final ProductCard productCard;
final List<UserCard> participants;
final List<ChatMessage> messages;
final bool isRead;
ChatRoom({
required this.chat_room_id,
required this.productCard,
required this.participants,
required this.messages,
required this.isRead,
});
}
class ChatMessage {
final int chat_message_id;
final int sender_id;
final String message;
final bool isRead;
final String created_at;
ChatMessage(
{required this.chat_message_id,
required this.sender_id,
required this.message,
required this.isRead,
required this.created_at});
}
class ProductCard {
final int product_id;
final String name;
final int price;
final String thumbnail_image;
ProductCard(
{required this.product_id,
required this.name,
required this.price,
required this.thumbnail_image});
}
class UserCard {
final int user_id;
final String name;
final String ProfileImage;
UserCard({
required this.user_id,
required this.name,
required this.ProfileImage,
});
}
// chatting (list) 페이지에서 사용
class ChatRoomCard {
final int chat_room_id;
final String product_thumbnail;
final int product_id;
final bool isSeller; // 채팅방의 제품 판매자
final String user_image;
final String user_name;
final String recent_message;
final String message_created_at;
ChatRoomCard(
{required this.chat_room_id,
required this.product_thumbnail,
required this.product_id,
required this.user_image,
required this.isSeller,
required this.user_name,
required this.recent_message,
required this.message_created_at});
}