user.js 1.39 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*

  # DB의 Users 테이블의 모델입니다.

  - email과 비밀번호를 저장합니다.
  - 외래키로 EMD 코드를 사용합니다.

*/

import { DataTypes, Model } from "sequelize";

export class User extends Model {
  static init(sequelize) {
    return super.init(
      {
        email: {
          type: DataTypes.STRING(320),
          allowNull: false,
KangMin An's avatar
KangMin An committed
19
          primaryKey: true,
20
        },
21
22
23
        nick_name: {
          type: DataTypes.STRING(16),
          allowNull: false,
KangMin An's avatar
KangMin An committed
24
25
26
27
28
        },
        using_aircon: {
          type: DataTypes.BOOLEAN,
          defaultValue: false,
        },
29
30
31
32
        created_at: {
          type: DataTypes.DATE,
          defaultValue: Date.now(),
        },
33
34
35
36
37
38
39
40
41
42
      },
      {
        sequelize,
        timestamps: false,
        paranoid: false,
      }
    );
  }

  static associate(db) {
43
    // User 모델이 참조하는 테이블에 대한 외래키 설정.
44
45
    db.User.belongsTo(db.Emd, {
      foreignKey: "loc_code",
46
      targetKey: "code_emd",
47
48
    });

49
    // User 모델을 참조하는 테이블에 대한 외래키 설정.
50
    db.User.hasMany(db.Weather_In, {
51
      foreignKey: "host",
52
53
54
55
56
57
58
      sourceKey: "email",
      onDelete: "CASCADE",
      onUpdate: "CASCADE",
    });
    db.User.hasMany(db.Data_Processing, {
      foreignKey: "host",
      sourceKey: "email",
59
60
61
62
63
64
65
      onDelete: "CASCADE",
      onUpdate: "CASCADE",
    });
  }
}

export default User;