help-desk/backend/helpdesk/repositories/ticket_repository.py

22 lines
986 B
Python

from helpdesk.models import Ticket
from django.db.models import QuerySet
class TicketRepository:
def get_ticket_by_id(self, ticket_id: int) -> Ticket:
"""ดึง Ticket ตาม ID"""
return Ticket.objects.select_related('creator', 'assigned_to').get(pk=ticket_id)
def get_unified_inbox_list(self) -> QuerySet[Ticket]:
"""
ดึงรายการ Ticket ทั้งหมด จัดเรียงตามการอัปเดตล่าสุด
(สำหรับหน้า Unified Inbox)
"""
return Ticket.objects.all().select_related('creator', 'assigned_to').order_by('-last_message_at')
def update_ticket(self, ticket: Ticket, update_data: dict) -> Ticket:
"""อัปเดตฟิลด์ที่ต้องการของ Ticket instance"""
for key, value in update_data.items():
setattr(ticket, key, value)
ticket.save()
return ticket