Files
superport/lib/data/models/company/branch_dto.dart
JiWoong Sul 6b31631cfb feat: 회사 관리 API 연동 구현
- CompanyService 및 RemoteDataSource 구현
- Company, Branch DTO 모델 생성 (Freezed)
- 의존성 주입 컨테이너 업데이트
- 회사 등록/수정 폼에 API 연동 로직 적용
- API 통합 계획 문서 업데이트
2025-07-24 17:56:06 +09:00

69 lines
2.2 KiB
Dart

import 'package:freezed_annotation/freezed_annotation.dart';
part 'branch_dto.freezed.dart';
part 'branch_dto.g.dart';
@freezed
class CreateBranchRequest with _$CreateBranchRequest {
const factory CreateBranchRequest({
@JsonKey(name: 'branch_name') required String branchName,
required String address,
required String phone,
@JsonKey(name: 'manager_name') String? managerName,
@JsonKey(name: 'manager_phone') String? managerPhone,
String? remark,
}) = _CreateBranchRequest;
factory CreateBranchRequest.fromJson(Map<String, dynamic> json) =>
_$CreateBranchRequestFromJson(json);
}
@freezed
class UpdateBranchRequest with _$UpdateBranchRequest {
const factory UpdateBranchRequest({
@JsonKey(name: 'branch_name') String? branchName,
String? address,
String? phone,
@JsonKey(name: 'manager_name') String? managerName,
@JsonKey(name: 'manager_phone') String? managerPhone,
String? remark,
}) = _UpdateBranchRequest;
factory UpdateBranchRequest.fromJson(Map<String, dynamic> json) =>
_$UpdateBranchRequestFromJson(json);
}
@freezed
class BranchResponse with _$BranchResponse {
const factory BranchResponse({
required int id,
@JsonKey(name: 'company_id') required int companyId,
@JsonKey(name: 'branch_name') required String branchName,
required String address,
required String phone,
@JsonKey(name: 'manager_name') String? managerName,
@JsonKey(name: 'manager_phone') String? managerPhone,
String? remark,
@JsonKey(name: 'created_at') required DateTime createdAt,
@JsonKey(name: 'updated_at') required DateTime updatedAt,
@JsonKey(name: 'address_id') int? addressId,
}) = _BranchResponse;
factory BranchResponse.fromJson(Map<String, dynamic> json) =>
_$BranchResponseFromJson(json);
}
@freezed
class BranchListDto with _$BranchListDto {
const factory BranchListDto({
required int id,
@JsonKey(name: 'company_id') required int companyId,
@JsonKey(name: 'branch_name') required String branchName,
required String address,
required String phone,
@JsonKey(name: 'manager_name') String? managerName,
}) = _BranchListDto;
factory BranchListDto.fromJson(Map<String, dynamic> json) =>
_$BranchListDtoFromJson(json);
}