CREATE DATABASE buddyguard;
USE buddyguard;
CREATE TABLE PETS (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,   -- 기본 키, 자동 증가
  name VARCHAR(255) NOT NULL,              -- 반려동물 이름
  profile_image VARCHAR(255) NOT NULL,    -- 반려동물 사진
  type VARCHAR(255) NOT NULL,              -- 종류를 관리
  birth DATE NOT NULL                      -- 태어난 날 설정
);

CREATE TABLE USERS (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,  -- 기본 키, 자동 증가
  email VARCHAR(255) NOT NULL,            -- 사용자의 카카오 이메일
  name VARCHAR(255) NOT NULL,             -- 기본값은 사용자의 카카오 이름 / 변경 가능
  profile_image VARCHAR(255) NOT NULL     -- 기본값은 사용자의 카카오 프로필 사진 / 변경 가능
  oauth_id VARCHAR(255) NOT NULL          -- 카카오에서 전달해주는 id값을 가공 후 저장 (kakao1234)
  role VARCHAR(255) NOT NULL              -- 유저 권한
);
CREATE TABLE USER_PET
(
    id            INTEGER PRIMARY KEY AUTO_INCREMENT, -- 기본 키, 자동 증가
    user_id       INTEGER NOT NULL,              -- 사용자 아이디
    pet_id        INTEGER NOT NULL,              -- 반려동물 아이디
    role          VARCHAR(255) NOT NULL          -- 사용자 역할 (host, guest) 
);

CREATE TABLE HOSPITAL_RECORDS (
		id BIGINT AUTO_INCREMENT PRIMARY KEY,
		pet_id BIGINT NOT NULL,
		date DATETIME NOT NULL,
		title VARCHAR(255) NOT NULL,
		description TEXT NOT NULL
);
CREATE TABLE VACCINATION_RECORDS
(
    id               INTEGER PRIMARY KEY AUTO_INCREMENT, -- 기본 키, 자동 증가
    user_id          INTEGER      NOT NULL,              -- 사용자 ID (외래 키)
    pet_id           INTEGER      NOT NULL,              -- 반려동물 ID (외래 키)
    vaccination_date DATE         NOT NULL,              -- 예방접종 날짜
    vaccination_name VARCHAR(255) NOT NULL,              -- 백신 이름
    description      VARCHAR(255) NOT NULL               -- 접종에 대한 설명
);

CREATE TABLE WEIGHT_RECORDS (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,  -- 기본 키, 자동 증가
  pet_id INTEGER NOT NULL,                -- 반려동물 ID (외래 키)
  recorded_at DATE NOT NULL,               -- 기록 생성 날짜
  weight DOUBLE NOT NULL                  -- 체중
  description VARCHAR(255) NOT NULL
);

CREATE TABLE PLAY_RECORDS (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,  -- 기본 키, 자동 증가
  pet_id INTEGER NOT NULL,                -- 반려동물 ID (외래 키)
  user_id INTEGER NOT NULL,               -- 사용자 ID (외래 키)
  play_name VARCHAR(255) NOT NULL,        -- 놀이 이름
  recorded_at DATE NOT NULL,               -- 놀이 날짜
  start_time TIME NOT NULL,               -- 놀이 시작 시간
  end_time TIME NOT NULL,                 -- 놀이 종료 시간
  description VARCHAR(255) NOT NULL       -- 세부 설명
);

CREATE TABLE FEED_RECORDS (
   id INTEGER PRIMARY KEY AUTO_INCREMENT,  -- 기본 키, 자동 증가
   pet_id INTEGER NOT NULL,                -- 반려동물 ID (외래 키)
   feed_type VARCHAR(255) NOT NULL,        -- 먹이 타입 (식사, 간식)
   date DATE NOT NULL,                     -- 먹이 준 날짜
   amount DOUBLE NOT NULL,                 -- 식사량
   amount_type VARCHAR(255) NOT NULL       -- 식사량 타입 (g, ml, L, 개 등)
);

CREATE TABLE REFRESH_TOKEN (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,  -- 기본 키
  user_id BIGINT NOT NULL,              -- 사용자 ID
  token VARCHAR(255) NOT NULL,          -- 토큰 값
  expiration VARCHAR(255) NOT NULL      -- 만료일자 (형식에 따라 VARCHAR 사용)
);