pub struct Ticket {Show 16 fields
pub id: Uuid,
pub organization_id: Uuid,
pub building_id: Uuid,
pub unit_id: Option<Uuid>,
pub created_by: Uuid,
pub assigned_to: Option<Uuid>,
pub title: String,
pub description: String,
pub category: TicketCategory,
pub priority: TicketPriority,
pub status: TicketStatus,
pub resolution_notes: Option<String>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub resolved_at: Option<DateTime<Utc>>,
pub closed_at: Option<DateTime<Utc>>,
}Expand description
Ticket Entity - Maintenance request from owners
Represents a maintenance request (ticket) submitted by a co-owner for issues in the building (plumbing, electrical, etc.).
Fields§
§id: Uuid§organization_id: Uuid§building_id: Uuid§unit_id: Option<Uuid>§created_by: Uuid§assigned_to: Option<Uuid>§title: String§description: String§category: TicketCategory§priority: TicketPriority§status: TicketStatus§resolution_notes: Option<String>§created_at: DateTime<Utc>§updated_at: DateTime<Utc>§resolved_at: Option<DateTime<Utc>>§closed_at: Option<DateTime<Utc>>Implementations§
Source§impl Ticket
impl Ticket
Sourcepub fn new(
organization_id: Uuid,
building_id: Uuid,
unit_id: Option<Uuid>,
created_by: Uuid,
title: String,
description: String,
category: TicketCategory,
priority: TicketPriority,
) -> Result<Self, String>
pub fn new( organization_id: Uuid, building_id: Uuid, unit_id: Option<Uuid>, created_by: Uuid, title: String, description: String, category: TicketCategory, priority: TicketPriority, ) -> Result<Self, String>
Create a new ticket
Sourcepub fn assign(&mut self, user_id: Uuid) -> Result<(), String>
pub fn assign(&mut self, user_id: Uuid) -> Result<(), String>
Assign ticket to a user (syndic or contractor)
Sourcepub fn start_work(&mut self) -> Result<(), String>
pub fn start_work(&mut self) -> Result<(), String>
Mark ticket as in progress
Sourcepub fn resolve(&mut self, resolution_notes: String) -> Result<(), String>
pub fn resolve(&mut self, resolution_notes: String) -> Result<(), String>
Resolve ticket (work completed)
Sourcepub fn reopen(&mut self, reason: String) -> Result<(), String>
pub fn reopen(&mut self, reason: String) -> Result<(), String>
Reopen ticket (if incorrectly resolved)
Sourcepub fn is_overdue(&self, max_days: i64) -> bool
pub fn is_overdue(&self, max_days: i64) -> bool
Check if ticket is overdue (open for more than X days)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Ticket
impl<'de> Deserialize<'de> for Ticket
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<Ticket> for TicketResponse
impl From<Ticket> for TicketResponse
Auto Trait Implementations§
impl Freeze for Ticket
impl RefUnwindSafe for Ticket
impl Send for Ticket
impl Sync for Ticket
impl Unpin for Ticket
impl UnwindSafe for Ticket
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Chain<T> for T
impl<T> Chain<T> for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Fake for T
impl<T> Fake for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.