import { ConnectionOptions, MigrationInterface, QueryRunner } from "typeorm";
export class CreateUserTable1705682562235 implements MigrationInterface {
name = "CreateUserTable1705682562235";
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE \`customer\` (\`customer_id\` int NOT NULL AUTO_INCREMENT, \`customer_name\` varchar(200) NOT NULL, \`customer_grade\` varchar(50) NOT NULL, PRIMARY KEY (\`customer_id\`)) ENGINE=InnoDB`
);
await queryRunner.query(
`CREATE TABLE \`order_history\` (\`order_id\` int NOT NULL AUTO_INCREMENT, \`customer_id\` int NOT NULL, \`order_date\` date NOT NULL, \`order_type\` enum ('order', 'refund') NOT NULL, \`order_amount\` decimal(10,2) NOT NULL, PRIMARY KEY (\`order_id\`)) ENGINE=InnoDB`
);
await queryRunner.query(
`ALTER TABLE \`customer\` ALTER COLUMN \`customer_name\` SET DEFAULT '기본이름'`
);
await queryRunner.query(
`ALTER TABLE \`order_history\` ADD CONSTRAINT \`FK_7ec8834ccf79631a801ab032f94\` FOREIGN KEY (\`customer_id\`) REFERENCES \`customer\`(\`customer_id\`) ON DELETE CASCADE ON UPDATE NO ACTION`
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE \`order_history\` DROP FOREIGN KEY \`FK_7ec8834ccf79631a801ab032f94\``
);
await queryRunner.query(`DROP TABLE \`order_history\``);
await queryRunner.query(`DROP TABLE \`customer\``);
}
}
- 고객정보 및 주문내역정보 업로드 API: 엑셀 파일을 읽어서 Database에 데이터를 등록한다.
- 월별 매출 통계 API: 월별 매출 합계 데이터를 반환한다.
- 주문 목록 조회 API: 주문 목록을 조회하는 페이지에서 API 요청 시 조건에 맞게(페이지네이션, 필터) 주문 데이터를 반환한다.
- 고객 정보 및 주문 내역 db 저장
- /api/uploads
- req.body.file
- 월별 매출 통계
- /api/monthlySales
- 전체 주문 목록 조회
- /api/orderList
- 특정 날짜 범위 주문 조회
- /api/orderList?startDate=2023-01-01&endDate=2023-01-31
- 주문 타입별 주문 조회
- /api/orderList?orderType=2
- 고객별 주문 조회
- /api/orderList?customerId=70
- 날짜 범위/주문 타입/고객 주문 조회
- /api/orderList?startDate=2023-01-01&endDate=2023-02-28&orderType=2&customerId=70