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