Files
Deal/src/core/Deal.Modules.Kanban/Application/Models/CardPatch.cs
T
Rustam Khalimov 9e07568ddd Инициализировать репозиторий «Дейл»
Первый коммит: модульный монолит ядра (.NET 10) и gRPC-сервисы
ai/ml/telegram, фронтенд Vue 3/Vite/Tailwind, документация (ТЗ,
инструкция пользователя, техдокументация, код-стайл), бэклог,
скрипты развёртывания и архив прототипа LeadRadar.
2026-09-11 02:50:17 +03:00

32 lines
2.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace Deal.Modules.Kanban.Application.Models;
/// <summary>
/// Частичная правка карточки (ICardStore.PatchCardAsync; 1:1 patch_card projects.py L159–187).
/// </summary>
/// <remarks>
/// Значение null у поля означает «поле не меняется» (конвенция ContainerPatchDto); пустая строка или
/// пустой массив — осмысленное значение и применяется. JSON-поля (stack/comments/links/files) заменяются
/// ЦЕЛИКОМ, не сливаясь с текущими значениями. budget — объект {from,to,cur} либо null = «не менять»;
/// явная очистка бюджета телом PATCH передаётся объектом с пустой Cur (BudgetCur пуст = «бюджета нет»;
/// хранилище пишет from/to=null и cur="", наружу бюджет снова null). Наружу сериализуется в camelCase.
/// </remarks>
/// <param name="Title">Новый заголовок.</param>
/// <param name="Summary">Новое краткое содержание.</param>
/// <param name="Contact">Новая контактная строка.</param>
/// <param name="TzText">Новый текст технического задания.</param>
/// <param name="Stack">Новый стек (полная замена массива).</param>
/// <param name="Budget">Новый бюджет (полная замена from/to/cur).</param>
/// <param name="Comments">Новый массив комментариев (полная замена).</param>
/// <param name="Links">Новый массив ссылок (полная замена).</param>
/// <param name="Files">Новый массив файлов (полная замена).</param>
public sealed record CardPatch(
string? Title,
string? Summary,
string? Contact,
string? TzText,
IReadOnlyList<string>? Stack,
CardBudgetDto? Budget,
IReadOnlyList<CardCommentDto>? Comments,
IReadOnlyList<CardLinkDto>? Links,
IReadOnlyList<CardFileDto>? Files);