from sqlalchemy.ext.asyncio import AsyncSession
from src.models.users.models import HrmsEmployeeProfile
from sqlalchemy import select, func
from datetime import datetime,timezone
from src.request.users.UsersRequest import UsersDDL

class UserRepo:
    def __init__(self,session:AsyncSession) -> None:
        self.session = session
    
    async def readAllDDL(self) -> list[UsersDDL]:
        result = await self.session.execute(
            select((HrmsEmployeeProfile.user_id).label("id"), 
                   func.trim((func.coalesce(HrmsEmployeeProfile.first_name, '') + 
         " " + 
         func.coalesce(HrmsEmployeeProfile.last_name, ''))).label("user_name") )                  
            
        )
        rows = result.all()   # returns list of Row objects (tuples)
        print(rows)
        return [UsersDDL(id=row.id, name=row.user_name) for row in rows]
