using CashLineERP.Contracts.Documents;

namespace CashLineERP.Contracts.Identity;

public static class AccountingOfficeClientRequestContracts
{
}

public sealed record CreateAccountingOfficeClientRequestRequest(
    string RequestTypeCode,
    string SubjectText,
    string DetailsText);

public sealed record ReviewAccountingOfficeClientRequestRequest(
    string? ReviewNotesText);

public sealed record CompleteAccountingOfficeClientRequestRequest(
    string CompletionNotesText);

public sealed record RejectAccountingOfficeClientRequestRequest(
    string RejectionReasonText);

public sealed record AccountingOfficeClientRequestResponse(
    long RequestId,
    long ClientPartyId,
    long? AssignedAccountingOfficeUserId,
    string RequestNumber,
    string RequestTypeCode,
    string SubjectText,
    string DetailsText,
    string StatusCode,
    DateTime CreatedAtUtc,
    long? CreatedByUserId,
    DateTime? SubmittedAtUtc,
    long? SubmittedByUserId,
    DateTime? ReviewedAtUtc,
    long? ReviewedByUserId,
    DateTime? CompletedAtUtc,
    long? CompletedByUserId,
    string? CompletionNotesText,
    DateTime? RejectedAtUtc,
    long? RejectedByUserId,
    string? RejectionReasonText,
    IReadOnlyCollection<DocumentAttachmentResponse> Attachments);
