22 lines
986 B
Python
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 |