KamiSama.Modules.Ticketing.Abstractions
10.0.11.2
See the version list below for details.
dotnet add package KamiSama.Modules.Ticketing.Abstractions --version 10.0.11.2
NuGet\Install-Package KamiSama.Modules.Ticketing.Abstractions -Version 10.0.11.2
<PackageReference Include="KamiSama.Modules.Ticketing.Abstractions" Version="10.0.11.2" />
<PackageVersion Include="KamiSama.Modules.Ticketing.Abstractions" Version="10.0.11.2" />
<PackageReference Include="KamiSama.Modules.Ticketing.Abstractions" />
paket add KamiSama.Modules.Ticketing.Abstractions --version 10.0.11.2
#r "nuget: KamiSama.Modules.Ticketing.Abstractions, 10.0.11.2"
#:package KamiSama.Modules.Ticketing.Abstractions@10.0.11.2
#addin nuget:?package=KamiSama.Modules.Ticketing.Abstractions&version=10.0.11.2
#tool nuget:?package=KamiSama.Modules.Ticketing.Abstractions&version=10.0.11.2
KamiSama.Modules.Ticketing.Abstractions
Version: 10.0.0
Description
Provider-neutral Ticketing feature contracts, requests, DTOs, search models, statuses, priorities, and comment sides. Reference this package from callers or alternative implementations that should not depend on EF Core, ASP.NET Core module setup, or a database provider.
How to use
dotnet add package KamiSama.Modules.Ticketing.Abstractions --version 10.0.0
Publication mismatch: 10.0.0 in the required install command is the current workspace/root documentation version. NuGet exposed 10.0.11 as the latest package when this surface was reviewed; 10.0.0 itself was not available.
Inject only the Ticketing feature contracts needed by an application service or controller after a concrete implementation has registered them:
using KamiSama.Extensions.Paging;
using KamiSama.Modules.Ticketing.Features.Tickets;
public sealed class TicketsController(IListTickets listTickets, IFindTicketById findTicket)
{
public Task<PagedResult<TicketListItemDto>> ListAsync(Guid authorId, CancellationToken token)
=> listTickets.ListAsync(
new TicketSearchModel(1, 20, null, null, authorId, [TicketStatus.Open], null, "updatedat"),
token);
public Task<TicketDto> FindAsync(Guid id, CancellationToken token)
=> findTicket.FindByIdAsync(id, token);
}
This package contains contracts and data shapes only: it registers no services, controllers, endpoints, persistence, content storage, validation pipeline, authentication, or authorization. Alternative implementations define query and mutation semantics. Current Core permits unchanged ticket status, open or reopened to resolved, and resolved to reopened or closed; invalid transitions produce HTTP 409. Core ignores TicketSearchModel.TicketCategoryId; its comment update accepts both a method key and UpdateTicketCommentRequest.CommentId but uses only the request identifier. Treat request author identifiers and comment sides as untrusted input at an authenticated endpoint boundary.
Namespaces
- KamiSama.Modules.Ticketing.DataTypes (3 types)
- KamiSama.Modules.Ticketing.Features.TicketCategories (13 types)
- KamiSama.Modules.Ticketing.Features.Tickets (18 types)
Types
- KamiSama.Modules.Ticketing.DataTypes.TicketCommentSide - Identifies whether a ticket comment is attributed to the user or operator side. The value is supplied by comment callers except for the initial user comment created with a ticket.
- KamiSama.Modules.Ticketing.DataTypes.TicketPriority - Identifies the urgency assigned to a ticket. Core stores the numeric value and uses it as the default primary list ordering.
- KamiSama.Modules.Ticketing.DataTypes.TicketStatus - Defines the open, reopened, resolved, and closed workflow states. Core permits unchanged status, open or reopened to resolved, and resolved to reopened or closed; closed is terminal.
- KamiSama.Modules.Ticketing.Features.TicketCategories.AddTicketCategoryRequest - Supplies the name for a new ticket category. Core checks the name for a case-insensitive duplicate before saving.
- KamiSama.Modules.Ticketing.Features.TicketCategories.IAddTicketCategory - Creates a ticket category and returns its persisted representation. Core rejects an existing case-insensitive name before insertion.
- KamiSama.Modules.Ticketing.Features.TicketCategories.IDeleteTicketCategory - Deletes a ticket category identified by a
Guid. Implementations determine relationship and missing-category behavior. - KamiSama.Modules.Ticketing.Features.TicketCategories.IExistsTicketCategoryById - Tests whether a ticket category exists for a
Guididentifier. Implementations define the underlying lookup behavior. - KamiSama.Modules.Ticketing.Features.TicketCategories.IExistsTicketCategoryByName - Tests whether a ticket category exists for a name. Core's repository performs a case-insensitive exact comparison.
- KamiSama.Modules.Ticketing.Features.TicketCategories.IFindTicketCategoryById - Finds a ticket category by its
Guididentifier. Implementations determine missing-category behavior. - KamiSama.Modules.Ticketing.Features.TicketCategories.IFindTicketCategoryByName - Finds a ticket category by name. Core performs a case-insensitive exact comparison.
- KamiSama.Modules.Ticketing.Features.TicketCategories.IListTicketCategories - Lists a page of ticket categories matching name and ordering criteria. Implementations define persistence and exact filtering semantics.
- KamiSama.Modules.Ticketing.Features.TicketCategories.IUpdateTicketCategory - Updates a ticket category identified by a
Guid. Core replaces the name and rejects a case-insensitive name owned by another category. - KamiSama.Modules.Ticketing.Features.TicketCategories.TicketCategoryDto - Carries the complete public representation of a ticket category. The current shape is the same as the list-item representation.
- KamiSama.Modules.Ticketing.Features.TicketCategories.TicketCategoryListItemDto - Carries the category fields returned in ticket-category list results and nested ticket data. It contains no ticket collection.
- KamiSama.Modules.Ticketing.Features.TicketCategories.TicketCategorySearchModel - Carries paging, optional name filtering, and ordering for ticket-category lists. Core performs a case-insensitive exact name comparison and recognizes
id,name,createdat, andupdatedatordering tokens. - KamiSama.Modules.Ticketing.Features.TicketCategories.UpdateTicketCategoryRequest - Supplies the replacement name for an existing ticket category. The target category identifier is passed separately to the update feature.
- KamiSama.Modules.Ticketing.Features.Tickets.AddAttachmentToTicketCommentRequest - Supplies an existing comment, claimed author, and external content identifiers to attach. Core requires author-id equality and rejects content identifiers already present on that comment.
- KamiSama.Modules.Ticketing.Features.Tickets.AddTicketCommentRequest - Supplies a ticket identifier and the data for a new comment with optional attachment references. Current Core accepts the requested side and author without checking ticket editability or caller identity.
- KamiSama.Modules.Ticketing.Features.Tickets.AddTicketRequest - Supplies the data used to open a ticket, create its initial user-side comment, and attach external content references. Core requires the category to exist and forces the initial status to
TicketStatus.Open. - KamiSama.Modules.Ticketing.Features.Tickets.IAddAttachmentToTicketComment - Adds content references to an existing ticket comment. Implementations determine ownership and duplicate-content behavior.
- KamiSama.Modules.Ticketing.Features.Tickets.IAddCommentToTicket - Adds a comment and optional attachments to an existing ticket. Implementations determine side and author authorization.
- KamiSama.Modules.Ticketing.Features.Tickets.IAddTicket - Creates a ticket with an initial user comment and optional attachment content identifiers. Implementations determine identifier generation and persistence behavior.
- KamiSama.Modules.Ticketing.Features.Tickets.IFindTicketById - Finds a ticket and its category, comments, and attachments by identifier. Implementations determine missing-ticket and loading behavior.
- KamiSama.Modules.Ticketing.Features.Tickets.IListTickets - Lists a page of tickets using text, author, status, priority, category, and ordering criteria. Implementations are not required to support every optional criterion.
- KamiSama.Modules.Ticketing.Features.Tickets.IRemoveAttachementFromTicketComment - Removes a ticket attachment by attachment identifier. The misspelling in this public contract name is retained by the current API.
- KamiSama.Modules.Ticketing.Features.Tickets.IUpdateTicketComment - Defines comment update through a method key plus a request that contains another comment identifier. Current Core uses only the request identifier, so callers must not assume the key selects or validates the target.
- KamiSama.Modules.Ticketing.Features.Tickets.IUpdateTicketState - Defines keyed replacement of a ticket's title, status, and priority. Core validates the requested workflow transition before changing or saving the tracked ticket and reports invalid transitions as HTTP 409 conflicts.
- KamiSama.Modules.Ticketing.Features.Tickets.TicketAttachmentDto - Carries a stored attachment reference without binary content. Resolve <paramref name="ContentId"/> through the host application's content service.
- KamiSama.Modules.Ticketing.Features.Tickets.TicketCommentDto - Carries one ticket comment, its author and side, attachment references, and timestamps. Attachment values contain external content identifiers rather than content bytes.
- KamiSama.Modules.Ticketing.Features.Tickets.TicketDto - Carries a complete ticket aggregate with category, comments, and attachment references. Core mapping relies on the corresponding EF Core navigations being available.
- KamiSama.Modules.Ticketing.Features.Tickets.TicketListItemDto - Carries the ticket fields returned by list operations without category, comment, or attachment data. Use a find operation when the complete aggregate is required.
- KamiSama.Modules.Ticketing.Features.Tickets.TicketSearchModel - Carries ticket paging, text, category, author, status, priority, and ordering criteria. Current Core ignores the category identifier and recognizes only
priority,status, andupdatedatordering tokens. - KamiSama.Modules.Ticketing.Features.Tickets.UpdateTicketCommentRequest - Carries the actual comment identifier, claimed author identifier, and replacement text used by Core. Core ignores the separate update-method key and authorizes only by equality with the stored author identifier.
- KamiSama.Modules.Ticketing.Features.Tickets.UpdateTicketStateRequest - Carries replacement title, status, and priority values. Core accepts unchanged status, open or reopened to resolved, and resolved to reopened or closed; every other transition produces an HTTP 409 conflict.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- KamiSama.Chassis.Commons.Abstractions (>= 10.0.11.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on KamiSama.Modules.Ticketing.Abstractions:
| Package | Downloads |
|---|---|
|
KamiSama.Modules.Ticketing.Core
ASP.NET Core Ticketing implementation with EF Core entities, validated ticket workflows, repositories, scoped features, modular registration, and startup database initialization. |
GitHub repositories
This package is not used by any popular GitHub repositories.