package com.iqser.red.service.persistence.service.v1.api.shared.model.notification;

import java.util.ArrayList;
import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "Object aggregation for notification preferences of a specific user.")
public class NotificationPreferences {

    @Schema(description = "Enable inApp notifications")
    private boolean inAppNotificationsEnabled;
    @Schema(description = "Enable email notifications")
    private boolean emailNotificationsEnabled;
    @Schema(description = "Email notification types")
    private EmailNotificationType emailNotificationType;
    @Builder.Default
    @Schema(description = "The list of enabled notifications for email")
    private List<String> emailNotifications = new ArrayList<>();
    @Builder.Default
    @Schema(description = "The list of enabled notifications for inApp")
    private List<String> inAppNotifications = new ArrayList<>();

}
