subindev 님의 블로그

[작업일지] 2025.01.21(화) - 홈, 채팅 화면 구현 및 모델링 클래스 구현 본문

프로젝트/[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});
}