TIL

23/12/18 TIL __ 백오피스 프로젝트 끝

GABOJOK 2023. 12. 18. 18:05

 

 

 

펫시터 예약 서비스 프로젝트가 끝났다. 

1주일이라는 시간동안 하기엔 정말 짧았는데, 막혔던 부분은 아무래도 db설계 부분이였다. 

 

db설계는 지금까지 간단한 구조만 해봣지, 이렇게 연관관계가 얽힌건 처음이라 정말 많이 해맸다. 

특히 날짜 데이터를 어떻게 처리해 줘야할지 많이 막혔던거 같다. 

 

그렇게 2일을 관계 고민에 많이 쓰고, 2일은 기능구현, 2일은 프론트 및 기능구현에 사용한거 같다. 

 

팀 전반적으로 프론트에 시간을 3일정도 사용한 것 같고,

프론트와 백의 경로를 다르게 해서 더 어렵게 느껴졌던 부분도 있었다. 

 

이번 과제를 하면서 벌크 인서트 라는걸 알게 되었는데, 

이는 다량의 데이터 처리를 한번에 하게 해주는 기능이다. 

프리즈마에서 지원하지 않았다가 지원을 하게 되었다고 한다. 

 

 

예약테이블 수정부분 구현을 할때 적용해 봤는데 생각보다 금방 할수 있어서 다음에 처리할때에는 이렇게 해봐야 겠다. 

 

//날짜로 예약 테이블 삭제(벌크 인서트)
	deleteReservationDate = async (willDeleteReservation) => {
		const deleteReservationDate = this.prisma.reservations.deleteMany({
			where: {
				reservationDate: {
					in: willDeleteReservation
				}
			}
		});
		return deleteReservationDate;
	};

	//날짜로 예약테이블 생성(벌크 인서트)
	createReservationDate = async (willCreateReservation) => {
		const createReservationDate = this.prisma.reservations.createMany({
			data: willCreateReservation.map((data) => ({
				petSitterId: data.petSitterId,
				memberId: data.memberId,
				scheduleId: data.scheduleId,
				reservationDate: data.reservationDate,
				status: 'Completed'
			}))
		});
		return createReservationDate;
	};

	//펫시터의 스케줄 수정(벌크인서트)_ 취소
	updateManyCancelPetSitterSchedule = async (petSitterCancelScheduleId) => {
		const updateCancelSchedule = this.prisma.petSitterSchedules.updateMany({
			where: {
				scheduleId: { in: petSitterCancelScheduleId }
			},
			data: {
				status: 'inProgress',
				memberId: null
			}
		});
		return updateCancelSchedule;
	};

	//펫시터의 스케줄 수정(벌크인서트)_ 추가
	updateManyCreatePetSitterSchedule = async (petSitterCreateScheduleId, memberId) => {
		const updateCreateSchedule = this.prisma.petSitterSchedules.updateMany({
			where: {
				scheduleId: { in: petSitterCreateScheduleId }
			},
			data: {
				status: 'Completed',
				memberId
			}
		});
		return updateCreateSchedule;
	};

 

 

 

https://www.notion.so/_-a983901d4fbe4cf1a8df379f6918d393