LCOV - code coverage report
Current view: | top level - lib/models - member_model.dart |  |  | Coverage | Total | Hit
Test: | lcov.info |  | Lines: | 95.1 % | 61 | 58
Test Date: | 2025-08-12 03:21:51 |  | Functions: | - | 0 | 0

                Line data    Source code
           1              : class Member {
           2              :   final String id;
           3              :   final String userId;
           4              :   final String clubId;
           5              :   final String name;
           6              :   final String email;
           7              :   final String? role;
           8              :   final String? profileImage;
           9              :   final String? phone;
          10              :   final String? address;
          11              :   final DateTime? joinDate;
          12              :   final bool isActive;
          13              :   final String? gender;
          14              :   final String? memberType;
          15              :   final int? handicap;
          16              :   final String? status;
          17              :   final DateTime? createdAt;
          18              :   final DateTime? updatedAt;
          19              :   final DateTime? birthDate; // 생년월일 추가
          20              :
          21            5 :   Member({
          22              :     required this.id,
          23              :     required this.userId,
          24              :     required this.clubId,
          25              :     required this.name,
          26              :     required this.email,
          27              :     this.role,
          28              :     this.profileImage,
          29              :     this.phone,
          30              :     this.address,
          31              :     this.joinDate,
          32              :     required this.isActive,
          33              :     this.gender,
          34              :     this.memberType,
          35              :     this.handicap,
          36              :     this.status,
          37              :     this.createdAt,
          38              :     this.updatedAt,
          39              :     this.birthDate,
          40              :   });
          41              :
          42              :   // JSON 데이터로부터 Member 객체 생성
          43            3 :   factory Member.fromJson(Map<String, dynamic> json) {
          44            3 :     return Member(
          45            6 :       id: json['id']?.toString() ?? '',
          46            4 :       userId: json['userId']?.toString() ?? '',
          47            6 :       clubId: json['clubId']?.toString() ?? '',
          48            3 :       name: json['name'] ?? '',
          49            3 :       email: json['email'] ?? '',
          50            4 :       role: json['role']?.toString(),
          51            4 :       profileImage: json['profileImage']?.toString(),
          52            6 :       phone: json['phone']?.toString(),
          53            4 :       address: json['address']?.toString(),
          54           12 :       joinDate: json['joinDate'] != null ? DateTime.parse(json['joinDate'].toString()) : null,
          55            3 :       isActive: json['isActive'] ?? true,
          56            6 :       gender: json['gender']?.toString(),
          57            4 :       memberType: json['memberType']?.toString(),
          58            6 :       handicap: json['handicap'] != null ? int.tryParse(json['handicap'].toString()) : null,
          59            4 :       status: json['status']?.toString(),
          60            6 :       createdAt: json['createdAt'] != null ? DateTime.parse(json['createdAt'].toString()) : null,
          61            6 :       updatedAt: json['updatedAt'] != null ? DateTime.parse(json['updatedAt'].toString()) : null,
          62            3 :       birthDate: json['birthDate'] != null ? DateTime.parse(json['birthDate'].toString()) : null,
          63              :     );
          64              :   }
          65              :
          66              :   // Member 객체를 JSON으로 변환
          67            1 :   Map<String, dynamic> toJson() {
          68            1 :     return {
          69            1 :       'id': id,
          70            1 :       'userId': userId,
          71            1 :       'clubId': clubId,
          72            1 :       'name': name,
          73            1 :       'email': email,
          74            1 :       'role': role,
          75            1 :       'profileImage': profileImage,
          76            1 :       'phone': phone,
          77            1 :       'address': address,
          78            2 :       'joinDate': joinDate?.toIso8601String(),
          79            1 :       'isActive': isActive,
          80            1 :       'gender': gender,
          81            1 :       'memberType': memberType,
          82            1 :       'handicap': handicap,
          83            1 :       'status': status,
          84            2 :       'createdAt': createdAt?.toIso8601String(),
          85            2 :       'updatedAt': updatedAt?.toIso8601String(),
          86            1 :       'birthDate': birthDate?.toIso8601String(),
          87              :     };
          88              :   }
          89              :
          90              :   // 객체 복사 및 특정 필드 업데이트를 위한 copyWith 메서드
          91            1 :   Member copyWith({
          92              :     String? id,
          93              :     String? userId,
          94              :     String? clubId,
          95              :     String? name,
          96              :     String? email,
          97              :     String? role,
          98              :     String? profileImage,
          99              :     String? phone,
         100              :     String? address,
         101              :     DateTime? joinDate,
         102              :     bool? isActive,
         103              :     String? gender,
         104              :     String? memberType,
         105              :     int? handicap,
         106              :     String? status,
         107              :     DateTime? createdAt,
         108              :     DateTime? updatedAt,
         109              :     DateTime? birthDate,
         110              :   }) {
         111            1 :     return Member(
         112            1 :       id: id ?? this.id,
         113            1 :       userId: userId ?? this.userId,
         114            1 :       clubId: clubId ?? this.clubId,
         115            0 :       name: name ?? this.name,
         116            0 :       email: email ?? this.email,
         117            0 :       role: role ?? this.role,
         118            1 :       profileImage: profileImage ?? this.profileImage,
         119            1 :       phone: phone ?? this.phone,
         120            1 :       address: address ?? this.address,
         121            1 :       joinDate: joinDate ?? this.joinDate,
         122            1 :       isActive: isActive ?? this.isActive,
         123            1 :       gender: gender ?? this.gender,
         124            1 :       memberType: memberType ?? this.memberType,
         125            1 :       handicap: handicap ?? this.handicap,
         126            1 :       status: status ?? this.status,
         127            1 :       createdAt: createdAt ?? this.createdAt,
         128            1 :       updatedAt: updatedAt ?? this.updatedAt,
         129            1 :       birthDate: birthDate ?? this.birthDate,
         130              :     );
         131              :   }
         132              : }

Generated by: LCOV version 2.3.1-1