using System.ComponentModel.DataAnnotations;
namespace ROLAC.API.DTOs.Expense;
/// Request body for the expense AI assist endpoint.
public class ExpenseAiAssistRequest
{
/// The user's free-text expense description (typically Chinese).
[Required] public string Text { get; set; } = "";
/// The expense amount, used as a hint when classifying the category.
public decimal Amount { get; set; }
}
///
/// AI suggestion for an expense: an English translation of the description plus a proposed
/// major category (大項) and sub-category (系項). Category ids are null when the model could
/// not confidently classify or returned an id outside the live catalog.
///
public class ExpenseAiSuggestion
{
public string? EnglishDescription { get; set; }
/// Typo-corrected, refined Traditional Chinese description.
public string? ChineseDescription { get; set; }
public int? GroupId { get; set; }
public int? SubCategoryId { get; set; }
/// Bilingual label of the suggested group, e.g. "Consumables / 消耗品".
public string? GroupLabel { get; set; }
/// Bilingual label of the suggested sub-category, e.g. "Batteries / 電池".
public string? SubLabel { get; set; }
/// Model self-reported confidence in the classification, 0..1.
public double Confidence { get; set; }
}