package storage

import (
	"github.com/jackc/pgx/v5/pgxpool"
)

type Storage struct {
	Projects       ProjectRepository
	ServerSettings ServerSettingsRepository
	Issues         IssueRepository
	Status         StatusRepository
	User           UserRepository
	UserToProject  UserToProjectRepository
}

func NewStorage(client *pgxpool.Pool) *Storage {
	return &Storage{
		Projects:       &ProjectStore{client: client},
		ServerSettings: &ServerSettingsStore{client: client},
		Issues:         &IssueStore{client: client},
		Status:         &StatusStore{client: client},
		User:           &UserStore{client: client},
		UserToProject:  &UserToProjectStore{client: client},
	}
}
