package ch.unisg.tapas.auctionhouse.domain;

import lombok.Getter;
import lombok.Value;

import java.net.URI;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

//TODO: change to array type
public class AuctionHouseDiscoveryInformation {

    @Getter
    private final AuctionHouseUri auctionHouseUri;

    @Getter
    private final WebSubUri webSubUri;

    @Getter
    private final TaskTypes taskTypes;

    @Getter
    private final TimeStamp timeStamp;

    //Had to initialize this in the constructor, but it's not required, so I'm not sure
    //if this is correct
    @Getter
    private final GroupName groupName;

    public AuctionHouseDiscoveryInformation(AuctionHouseUri auctionHouseUri, WebSubUri webSubUri,
                                            TaskTypes taskTypes, TimeStamp timeStamp, GroupName groupName){
        this.auctionHouseUri = auctionHouseUri;
        this.webSubUri = webSubUri;
        this.taskTypes = taskTypes;
        this.timeStamp = timeStamp;
        this.groupName = groupName; //see above
    }


    @Value
    public static class AuctionHouseUri {
        private URI value;
    }

    @Value
    public static class WebSubUri {
        private URI value;
    }

    @Value
    public static class TaskTypes {
        private List<String> value;
    }

    @Value
    public static class TimeStamp {
        private Timestamp value;
    }

    @Value
    public static class GroupName {
        private String value;
    }
}
