package com.emonster.taroaichat.service.mapper;

import com.emonster.taroaichat.domain.Donation;
import com.emonster.taroaichat.domain.TarotSession;
import com.emonster.taroaichat.domain.UserProfile;
import com.emonster.taroaichat.service.dto.DonationDTO;
import com.emonster.taroaichat.service.dto.TarotSessionDTO;
import com.emonster.taroaichat.service.dto.UserProfileDTO;
import org.mapstruct.*;

/**
 * Mapper for the entity {@link Donation} and its DTO {@link DonationDTO}.
 */
@Mapper(componentModel = "spring")
public interface DonationMapper extends EntityMapper<DonationDTO, Donation> {
    @Mapping(target = "session", source = "session", qualifiedByName = "tarotSessionId")
    @Mapping(target = "userProfile", source = "userProfile", qualifiedByName = "userProfilePhone")
    DonationDTO toDto(Donation s);

    @Named("tarotSessionId")
    @BeanMapping(ignoreByDefault = true)
    @Mapping(target = "id", source = "id")
    TarotSessionDTO toDtoTarotSessionId(TarotSession tarotSession);

    @Named("userProfilePhone")
    @BeanMapping(ignoreByDefault = true)
    @Mapping(target = "id", source = "id")
    @Mapping(target = "phone", source = "phone")
    UserProfileDTO toDtoUserProfilePhone(UserProfile userProfile);
}
