import { pito } from 'pito'; // ====================================================================================== // // ====================================================================================== // 매도인 및 매수인 상세 정보 export const EsttSaleCtrctUserDetailDefine = pito.Obj({ addressTxt: pito.Opt(pito.Str()), // '주소' rrNo : pito.Opt(pito.Str()), // '주민번호 - 암호화' telNo : pito.Opt(pito.Str()), // '전화번호' name : pito.Opt(pito.Str()), // '이름' }); export type EsttSaleCtrctUserDetailDefine = pito.Type< typeof EsttSaleCtrctUserDetailDefine >; // 매도인 및 매수인 정보 export const EsttSaleCtrctUserDefine = pito.Obj({ user : pito.Opt(EsttSaleCtrctUserDetailDefine), // 매도/매수자 deputy: pito.Opt(EsttSaleCtrctUserDetailDefine), // 대리인 sign : pito.Opt(pito.Str()), // '직인(사인)' }); export type EsttSaleCtrctUserDefine = pito.Type; // 공인중개사 정보 export const EsttSaleCtrctRltrOffcDefine = pito.Obj({ addressTxt: pito.Opt(pito.Str()), // '중개사 사무소 주소' name : pito.Opt(pito.Str()), // '중개사 사무소 이름' reprName : pito.Opt(pito.Str()), // '중개사 사무소 대표' reprSign : pito.Opt(pito.Str()), // '중개사 사무소 대표 직인(사인)' aprNo : pito.Opt(pito.Str()), // '중개사 허가번호' telNo : pito.Opt(pito.Str()), // '중개사 전화번호' brokerName: pito.Opt(pito.Str()), // '공인중개사 명' brokerSign: pito.Opt(pito.Str()), // '공인중개사 직인(사인)' }); export type EsttSaleCtrctRltrOffcDefine = pito.Type< typeof EsttSaleCtrctRltrOffcDefine >; // 부동산매매계약서 export const EsttSaleCtrctDefine = pito.Obj({ /* 0. KEY */ dealId: pito.Opt(pito.Num()), /* 1. 부동산의 표시 */ product: pito.Opt( pito.Obj({ doroAddressTxt : pito.Opt(pito.Str()), // '도로 소재지' jibunAddressTxt: pito.Opt(pito.Str()), // '지번 소재지' landDsgtn : pito.Opt(pito.Str()), // '토지지목' landArea : pito.Opt(pito.Num()), // '토지면적' landKind : pito.Opt(pito.Str()), // '대지권 종류' landRate : pito.Opt(pito.Str()), // ' 대지권 비율' bldPurps : pito.Opt(pito.Str()), // '건물용도' bldArea : pito.Opt(pito.Num()), // '건물면적' }), ), /* 2. 계약내용 */ ctrct: pito.Opt( pito.Obj({ salePriceTxt : pito.Opt(pito.Str()), // '매매대금 한글' salePrice : pito.Opt(pito.Num()), // '매매대금' ctrctPrice : pito.Opt(pito.Num()), // '계약금' ctrctSellerName: pito.Opt(pito.Str()), // '계약금 영수자' ctrctSellerSign: pito.Opt(pito.Str()), // '계약금 영수자 직인(사인)' loanPrice : pito.Opt(pito.Num()), // '융자금' loanBank : pito.Opt(pito.Str()), // '융자금 은행' rentalDeposit : pito.Opt(pito.Num()), // '임대보증금' // 중도금은 여러건으로 들어올수 있다. intrm: pito.Opt( pito.Arr( pito.Obj({ intrmPrice: pito.Opt(pito.Num()), // '중도금' intrmDate : pito.Opt(pito.Date()), // '중도금 일자' }), ), ), intrmCount: pito.Opt(pito.Num()), // '중도금 납입 횟수 (납입해야할 횟수)' balncPrice : pito.Opt(pito.Num()), // '잔금' balncDate : pito.Opt(pito.Date()), // '잔금일자' // 1조 moveInDate : pito.Opt(pito.Date()), // '인도일' moveInDateOwner : pito.Opt(pito.Date()), // '인도일 - 집주인 요청' moveInDateBuyer : pito.Opt(pito.Date()), // '인도일 - 매수자 요청' // 7조 feeRate : pito.Opt(pito.Num()), // '중개보수율' feePrice : pito.Opt(pito.Num()), // '중개보수금액' // 특약사항 bankName : pito.Opt(pito.Str()), // '은행 이름' accountNumber : pito.Opt(pito.Str()), // '계좌번호' accountOwnerName: pito.Opt(pito.Str()), // '예금주명' spclTerm : pito.Opt(pito.Str()), // '특약사항' spclTermOwner : pito.Opt(pito.Str()), // '특약사항 - 집주인 요청' spclTermBuyer : pito.Opt(pito.Str()), // '특약사항 - 매수자 요청' ctrctCreateDate: pito.Opt(pito.Date()), // '계약서 작성일자' }), ), /* 3. 매도인 */ seller: pito.Opt(EsttSaleCtrctUserDefine), /* 4. 매수인 */ buyer: pito.Opt(EsttSaleCtrctUserDefine), /* 5. 공인중개사 정보 */ // 1 rltrOffcMain: pito.Opt(EsttSaleCtrctRltrOffcDefine), // 2 rltrOffcSub: pito.Opt(EsttSaleCtrctRltrOffcDefine), }); export type EsttSaleCtrctDefine = pito.Type; // 차후 계약서종류가 많아질경우 type추가정의 // export const CtrctDefine = pito // .Uobj("type") // .case("estt-sale", EsttSaleCtrctDefine) // .end(); // export type CtrctDefine = pito.Type; // ====================================================================================== // // ====================================================================================== // 부동산매매계약서-매수자 수정 export const EsttSaleCtrctBuyerDefine = pito.Obj({ /* 0. KEY */ dealId: pito.Opt(pito.Num()), /* 2. 계약내용 */ ctrct: pito.Obj({ // 1조 moveInDateBuyer: pito.Opt(pito.Date()), // '인도일' // 특약사항 spclTermBuyer : pito.Opt(pito.Str()), // '특약사항' }), /* 4. 매수인 */ buyer: pito.Obj({ user: pito.Obj({ addressTxt: pito.Str(), // '주소' rrNo : pito.Str(), // '주민번호 - 암호화' }), // 매수인 deputy: EsttSaleCtrctUserDetailDefine, // 대리인 }), }); export type EsttSaleCtrctBuyerDefine = pito.Type; // ====================================================================================== // // ====================================================================================== // 부동산매매계약서-집주인 수정 export const EsttSaleCtrctOwnerDefine = pito.Obj({ /* 0. KEY */ dealId: pito.Opt(pito.Num()), /* 2. 계약내용 */ ctrct: pito.Obj({ // 1조 moveInDateOwner : pito.Opt(pito.Date()), // '인도일 - 집주인 요청' // 특약사항 bankName : pito.Opt(pito.Str()), // '은행 이름' accountNumber : pito.Opt(pito.Str()), // '계좌번호' accountOwnerName: pito.Opt(pito.Str()), // '예금주명' spclTermOwner : pito.Opt(pito.Str()), // '특약사항 - 집주인 요청' }), /* 4. 집주인 */ owner: pito.Obj({ user: pito.Obj({ addressTxt: pito.Str(), // '주소' rrNo : pito.Str(), // '주민번호 - 암호화' }), // 집주인 deputy: EsttSaleCtrctUserDetailDefine, // 대리인 }), }); export type EsttSaleCtrctOwnerDefine = pito.Type; // ====================================================================================== // // ====================================================================================== // 매도인 및 매수인 상세 정보 export const EsttSaleCtrctUserDetailDiffDefine = pito.Obj({ addressTxt: pito.Opt(pito.Str()), // '주소' rrNo : pito.Opt(pito.Str()), // '주민번호 - 암호화' telNo : pito.Opt(pito.Str()), // '전화번호' name : pito.Opt(pito.Str()), // '이름' }); export type EsttSaleCtrctUserDetailDiffDefine = pito.Type; // 매도인 및 매수인 정보 export const EsttSaleCtrctUserDiffDefine = pito.Obj({ user : pito.Opt(EsttSaleCtrctUserDetailDiffDefine), // 매도/매수자 deputy: pito.Opt(EsttSaleCtrctUserDetailDiffDefine), // 대리인 sign : pito.Opt(pito.Str()), // '직인(사인)' }); export type EsttSaleCtrctUserDiffDefine = pito.Type; // 공인중개사 정보 export const EsttSaleCtrctRltrOffcDiffDefine = pito.Obj({ addressTxt: pito.Opt(pito.Str()), // '중개사 사무소 주소' name : pito.Opt(pito.Str()), // '중개사 사무소 이름' reprName : pito.Opt(pito.Str()), // '중개사 사무소 대표' reprSign : pito.Opt(pito.Str()), // '중개사 사무소 대표 직인(사인)' aprNo : pito.Opt(pito.Str()), // '중개사 허가번호' telNo : pito.Opt(pito.Str()), // '중개사 전화번호' brokerName: pito.Opt(pito.Str()), // '공인중개사 명' brokerSign: pito.Opt(pito.Str()), // '공인중개사 직인(사인)' }); export type EsttSaleCtrctRltrOffcDiffDefine = pito.Type; // 부동산매매계약서 export const EsttSaleCtrctDiffDefine = pito.Obj({ /* 1. 부동산의 표시 */ product: pito.Opt( pito.Obj({ addressTxt: pito.Opt(pito.Str()), // '소재지' landDsgtn : pito.Opt(pito.Str()), // '토지지목' landArea : pito.Opt(pito.Str()), // '토지면적' landKind : pito.Opt(pito.Str()), // '대지권 종류' landRate : pito.Opt(pito.Str()), // ' 대지권 비율' bldPurps : pito.Opt(pito.Str()), // '건물용도' bldArea : pito.Opt(pito.Str()), // '건물면적' }) ), /* 2. 계약내용 */ ctrct: pito.Opt( pito.Obj({ salePriceTxt : pito.Opt(pito.Str()), // '매매대금 한글' salePrice : pito.Opt(pito.Str()), // '매매대금' ctrctPrice : pito.Opt(pito.Str()), // '계약금' ctrctSellerName: pito.Opt(pito.Str()), // '계약금 영수자' ctrctSellerSign: pito.Opt(pito.Str()), // '계약금 영수자 직인(사인)' loanPrice : pito.Opt(pito.Str()), // '융자금' loanBank : pito.Opt(pito.Str()), // '융자금 은행' rentalDeposit : pito.Opt(pito.Str()), // '임대보증금' // 중도금은 여러건으로 들어올수 있다. // intrm: pito.Opt( // pito.Arr( // pito.Obj({ // intrmPrice: pito.Opt(pito.Str()), // '중도금' // intrmDate: pito.Opt(pito.Str()), // '중도금 일자' // }) // ) // ), intrm : pito.Opt(pito.Str()), intrmCount: pito.Opt(pito.Str()), // '중도금 납입 횟수 (납입해야할 횟수)' balncPrice : pito.Opt(pito.Str()), // '잔금' balncDate : pito.Opt(pito.Str()), // '잔금일자' // 1조 moveInDate : pito.Opt(pito.Str()), // '인도일' moveInDateOwner : pito.Opt(pito.Str()), // '인도일 - 집주인 요청' moveInDateBuyer : pito.Opt(pito.Str()), // '인도일 - 매수자 요청' // 7조 feeRate : pito.Opt(pito.Str()), // '중개보수율' feePrice : pito.Opt(pito.Str()), // '중개보수금액' // 특약사항 bankName : pito.Opt(pito.Str()), // '은행 이름' accountNumber : pito.Opt(pito.Str()), // '계좌번호' accountOwnerName: pito.Opt(pito.Str()), // '예금주명' spclTerm : pito.Opt(pito.Str()), // '특약사항' spclTermOwner : pito.Opt(pito.Str()), // '특약사항 - 집주인 요청' spclTermBuyer : pito.Opt(pito.Str()), // '특약사항 - 매수자 요청' ctrctCreateDate: pito.Opt(pito.Str()), // '계약서 작성일자' }) ), /* 3. 집주인 */ owner: pito.Opt(EsttSaleCtrctUserDiffDefine), /* 4. 매수인 */ buyer: pito.Opt(EsttSaleCtrctUserDiffDefine), /* 5. 공인중개사 정보 */ // 1 rltrOffcMain: pito.Opt(EsttSaleCtrctRltrOffcDiffDefine), // 2 rltrOffcSub: pito.Opt(EsttSaleCtrctRltrOffcDiffDefine), }); export type EsttSaleCtrctDiffDefine = pito.Type;