admin: add common-code crud and business-day rules

This commit is contained in:
2026-07-02 10:27:57 +09:00
parent df4c555dd1
commit 1839c2c3d1
17 changed files with 628 additions and 170 deletions
@@ -10,6 +10,13 @@ namespace TaxBaik.Infrastructure.Repositories;
public class CommonCodeRepository(IDbConnectionFactory connectionFactory) : BaseRepository(connectionFactory), ICommonCodeRepository
{
public async Task<IEnumerable<string>> GetAllGroupsAsync(CancellationToken ct = default)
{
using var conn = Conn();
return await conn.QueryAsync<string>(
"SELECT DISTINCT code_group FROM common_codes WHERE is_active = TRUE ORDER BY code_group");
}
public async Task<IEnumerable<CommonCode>> GetByGroupAsync(string codeGroup, CancellationToken ct = default)
{
using var conn = Conn();
@@ -30,4 +37,36 @@ public class CommonCodeRepository(IDbConnectionFactory connectionFactory) : Base
WHERE is_active = TRUE
ORDER BY code_group, sort_order");
}
public async Task<CommonCode?> GetAsync(string codeGroup, string codeValue, CancellationToken ct = default)
{
using var conn = Conn();
return await conn.QuerySingleOrDefaultAsync<CommonCode>(
@"SELECT code_group as CodeGroup, code_value as CodeValue, code_name as CodeName, sort_order as SortOrder, is_active as IsActive
FROM common_codes
WHERE code_group = @CodeGroup AND code_value = @CodeValue",
new { CodeGroup = codeGroup, CodeValue = codeValue });
}
public async Task UpsertAsync(CommonCode code, CancellationToken ct = default)
{
using var conn = Conn();
await conn.ExecuteAsync(
@"INSERT INTO common_codes (code_group, code_value, code_name, sort_order, is_active)
VALUES (@CodeGroup, @CodeValue, @CodeName, @SortOrder, @IsActive)
ON CONFLICT (code_group, code_value) DO UPDATE
SET code_name = EXCLUDED.code_name,
sort_order = EXCLUDED.sort_order,
is_active = EXCLUDED.is_active",
code);
}
public async Task DeleteAsync(string codeGroup, string codeValue, CancellationToken ct = default)
{
using var conn = Conn();
await conn.ExecuteAsync(
@"DELETE FROM common_codes
WHERE code_group = @CodeGroup AND code_value = @CodeValue",
new { CodeGroup = codeGroup, CodeValue = codeValue });
}
}