feat(church-profile): masked-read + leave-unchanged write for AI keys

This commit is contained in:
Chris Chen
2026-06-25 13:13:42 -07:00
parent 75905e7036
commit a16e21dbfd
3 changed files with 132 additions and 0 deletions
@@ -17,6 +17,11 @@ public class ChurchProfileDto
public string? BankAccountNumber { get; set; }
public string? BankRoutingNumber { get; set; }
public int NextCheckNumber { get; set; }
public string AiProvider { get; set; } = "Claude";
public string? ClaudeModel { get; set; }
public string? ClaudeApiKeyMasked { get; set; }
public string? GeminiModel { get; set; }
public string? GeminiApiKeyMasked { get; set; }
}
public class UpdateChurchProfileRequest
@@ -34,4 +39,9 @@ public class UpdateChurchProfileRequest
[MaxLength(50)] public string? BankAccountNumber { get; set; }
[MaxLength(50)] public string? BankRoutingNumber { get; set; }
[Range(1, int.MaxValue)] public int NextCheckNumber { get; set; }
[MaxLength(20)] public string AiProvider { get; set; } = "Claude";
[MaxLength(100)] public string? ClaudeModel { get; set; }
[MaxLength(500)] public string? ClaudeApiKey { get; set; } // null/blank = leave unchanged
[MaxLength(100)] public string? GeminiModel { get; set; }
[MaxLength(500)] public string? GeminiApiKey { get; set; } // null/blank = leave unchanged
}