add_subcontract (외주 계약 추가)
새로운 외주 계약을 등록합니다.
기본 정보
| 항목 |
값 |
| URL |
https://asia-northeast3-construction24-test.cloudfunctions.net/add_subcontract |
| Method |
POST |
| 인증 |
Firebase ID Token 필요 |
| 권한 |
해당 회사의 멤버 |
요청
Body
| 필드 |
타입 |
필수 |
설명 |
검증 |
| token |
string |
O |
Firebase ID Token |
- |
| company_id |
string |
O |
회사 ID |
- |
| site_id |
string |
O |
현장 ID |
- |
| subcontract_name |
string |
O |
외주명 |
- |
| contractor |
string |
O |
시공사 |
- |
| start_date |
string |
O |
공사 시작일 |
REGEX: YYYY-MM-DD |
| end_date |
string |
O |
공사 종료일 |
REGEX: YYYY-MM-DD |
| supply_amount |
number |
O |
공급가액 (세금 미포함) |
- |
| vat_rate |
number |
- |
부가가치세율 |
기본값: 0.1 (10%) |
| memo |
string |
- |
메모 |
- |
요청 예시
{
"token": "eyJhbGci...",
"company_id": "abc123",
"site_id": "site456",
"subcontract_name": "철근 콘크리트 공사",
"contractor": "(주)대한건설",
"start_date": "2025-01-15",
"end_date": "2025-03-31",
"supply_amount": 50000000,
"vat_rate": 0.1,
"memo": "1차 외주 계약"
}
응답
성공 (200)
{
"message": "외주 계약 추가 완료",
"subcontract_id": "subcontract789"
}
저장되는 데이터
| 필드 |
설명 |
| subcontract_name |
외주명 |
| contractor |
시공사 |
| start_date |
공사 시작일 (datetime) |
| end_date |
공사 종료일 (datetime) |
| supply_amount |
공급가액 |
| vat_rate |
부가가치세율 |
| tax |
세금 (supply_amount × vat_rate, 자동 계산) |
| memo |
메모 |
| created_at |
생성 시간 |
| created_by |
생성자 UID |
실패
| 코드 |
message |
원인 |
| 500 |
"해당 회사의 멤버가 아닙니다." |
요청자가 해당 회사의 멤버가 아닌 경우 |
| 500 |
"공급가액은 숫자여야 합니다." |
supply_amount가 숫자가 아닌 경우 |
| 500 |
"부가가치세율은 숫자여야 합니다." |
vat_rate가 숫자가 아닌 경우 |
| 500 |
"start_date의 형식이 올바르지 않습니다." |
날짜 형식 오류 |
Firestore 경로
/companies/{company_id}/sites/{site_id}/subcontracts/{subcontract_id}
참고
- 세금(tax)은 서버에서 자동 계산됩니다:
supply_amount × vat_rate
- vat_rate 미입력 시 기본값 0.1 (10%) 적용