# -*- coding: utf-8 -*-
#
# Copyright (C) 2026 XiVO Solutions
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>


from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from xivo_dao.resources.labels import dao as labels_dao


class UserLabelDAO(object):

    def __init__(self, Session):
        self._Session = Session

    def label_ids_for_user(self, xivo_user_uuid):
        session = self._Session()
        try:
            return labels_dao.label_ids_for_user(session, xivo_user_uuid)
        finally:
            session.close()


def new_user_label_dao(db_uri):
    Session = scoped_session(sessionmaker())
    Session.configure(bind=create_engine(db_uri))
    return UserLabelDAO(Session)
