package ticket // Store is the persistence interface for tickets. // Implementations must be safe for concurrent use. type Store interface { List(projectID string) ([]Ticket, error) Get(id string) (Ticket, error) Create(t Ticket) (Ticket, error) Update(t Ticket) error // MarkSynced sets SyncedAt to the ticket's current UpdatedAt without // bumping UpdatedAt (so NeedsPush becomes false after a remote sync). MarkSynced(id string) error Move(id, toProjectID string) (Ticket, error) Delete(id string) error }