결재 단계 목록 화면과 테스트 도입

This commit is contained in:
JiWoong Sul
2025-09-25 16:41:22 +09:00
parent 86d3f5bf21
commit 35b9002688
10 changed files with 981 additions and 24 deletions

View File

@@ -0,0 +1,36 @@
import '../../../domain/entities/approval.dart';
/// 결재 단계 레코드
///
/// - 개별 결재 요청의 특정 단계를 목록으로 조회할 때 사용한다.
class ApprovalStepRecord {
ApprovalStepRecord({
required this.approvalId,
required this.approvalNo,
this.transactionNo,
this.templateName,
required this.step,
});
final int approvalId;
final String approvalNo;
final String? transactionNo;
final String? templateName;
final ApprovalStep step;
ApprovalStepRecord copyWith({
int? approvalId,
String? approvalNo,
String? transactionNo,
String? templateName,
ApprovalStep? step,
}) {
return ApprovalStepRecord(
approvalId: approvalId ?? this.approvalId,
approvalNo: approvalNo ?? this.approvalNo,
transactionNo: transactionNo ?? this.transactionNo,
templateName: templateName ?? this.templateName,
step: step ?? this.step,
);
}
}

View File

@@ -0,0 +1,16 @@
import 'package:superport_v2/core/common/models/paginated_result.dart';
import '../entities/approval_step_record.dart';
abstract class ApprovalStepRepository {
Future<PaginatedResult<ApprovalStepRecord>> list({
int page = 1,
int pageSize = 20,
String? query,
int? statusId,
int? approverId,
int? approvalId,
});
Future<ApprovalStepRecord> fetchDetail(int id);
}