main
Peace 2 months ago
parent 8f9a049310
commit 207161d3b1
  1. 2
      backend/dist/app.module.js
  2. 2
      backend/dist/app.module.js.map
  3. 2
      backend/dist/tsconfig.build.tsbuildinfo
  4. 2
      backend/src/app.module.ts
  5. 0
      backend/src/scripts/seed-sensors.ts
  6. 17
      backend/src/sensors/entities/sensor-data.entity.ts
  7. 19
      backend/src/sensors/entities/sensor-group.entity.ts
  8. 19
      backend/src/sensors/entities/sensor.entity.ts
  9. 10
      backend/src/sensors/sensors.module.ts
  10. 7
      backend/src/users/entities/user.entity.ts

@ -17,6 +17,7 @@ const auth_module_1 = require("./auth/auth.module");
const users_module_1 = require("./users/users.module"); const users_module_1 = require("./users/users.module");
const jwt_1 = require("@nestjs/jwt"); const jwt_1 = require("@nestjs/jwt");
const profiles_module_1 = require("./profiles/profiles.module"); const profiles_module_1 = require("./profiles/profiles.module");
const sensors_module_1 = require("./sensors/sensors.module");
let AppModule = class AppModule { let AppModule = class AppModule {
}; };
exports.AppModule = AppModule; exports.AppModule = AppModule;
@ -43,6 +44,7 @@ exports.AppModule = AppModule = __decorate([
auth_module_1.AuthModule, auth_module_1.AuthModule,
users_module_1.UsersModule, users_module_1.UsersModule,
profiles_module_1.ProfilesModule, profiles_module_1.ProfilesModule,
sensors_module_1.SensorsModule,
], ],
controllers: [app_controller_1.AppController], controllers: [app_controller_1.AppController],
providers: [app_service_1.AppService, jwt_1.JwtService], providers: [app_service_1.AppService, jwt_1.JwtService],

@ -1 +1 @@
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,2CAA6D;AAC7D,6CAAgD;AAChD,+BAA4B;AAC5B,oDAAgD;AAChD,uDAAmD;AACnD,qCAAyC;AACzC,gEAA4D;AA4BrD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IA1BrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxC,uBAAa,CAAC,YAAY,CAAC;gBACzB,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gBACvB,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,CAAC;oBACtC,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM,CAAC,GAAG,CAAS,SAAS,CAAC;oBACnC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAS,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;oBACzD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC;oBAC3C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC;oBAC3C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC;oBAC3C,QAAQ,EAAE,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;oBACrD,WAAW,EAAE,MAAM,CAAC,GAAG,CAAS,UAAU,CAAC,KAAK,YAAY;oBAC5D,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE,IAAI;iBACd,CAAC;aACH,CAAC;YACF,wBAAU;YACV,0BAAW;YACX,gCAAc;SACf;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,EAAE,gBAAU,CAAC;KACpC,CAAC;GACW,SAAS,CAAG"} {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,2CAA6D;AAC7D,6CAAgD;AAChD,+BAA4B;AAC5B,oDAAgD;AAChD,uDAAmD;AACnD,qCAAyC;AACzC,gEAA4D;AAC5D,6DAAyD;AA6BlD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IA3BrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxC,uBAAa,CAAC,YAAY,CAAC;gBACzB,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gBACvB,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,CAAC;oBACtC,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM,CAAC,GAAG,CAAS,SAAS,CAAC;oBACnC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAS,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;oBACzD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC;oBAC3C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC;oBAC3C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC;oBAC3C,QAAQ,EAAE,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;oBACrD,WAAW,EAAE,MAAM,CAAC,GAAG,CAAS,UAAU,CAAC,KAAK,YAAY;oBAC5D,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE,IAAI;iBACd,CAAC;aACH,CAAC;YACF,wBAAU;YACV,0BAAW;YACX,gCAAc;YACd,8BAAa;SACd;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,EAAE,gBAAU,CAAC;KACpC,CAAC;GACW,SAAS,CAAG"}

File diff suppressed because one or more lines are too long

@ -8,6 +8,7 @@ import { AuthModule } from './auth/auth.module';
import { UsersModule } from './users/users.module'; import { UsersModule } from './users/users.module';
import { JwtService } from '@nestjs/jwt'; import { JwtService } from '@nestjs/jwt';
import { ProfilesModule } from './profiles/profiles.module'; import { ProfilesModule } from './profiles/profiles.module';
import { SensorsModule } from './sensors/sensors.module';
@Module({ @Module({
imports: [ imports: [
@ -31,6 +32,7 @@ import { ProfilesModule } from './profiles/profiles.module';
AuthModule, AuthModule,
UsersModule, UsersModule,
ProfilesModule, ProfilesModule,
SensorsModule,
], ],
controllers: [AppController], controllers: [AppController],
providers: [AppService, JwtService], providers: [AppService, JwtService],

@ -0,0 +1,17 @@
import { Column, Entity, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
import { Sensor } from './sensor.entity';
@Entity()
export class SensorData {
@PrimaryGeneratedColumn()
id: number;
@Column('float')
value: number;
@Column({ type: 'timestamp' })
recordedAt: Date;
@ManyToOne(() => Sensor, (sensor) => sensor.data, { onDelete: 'CASCADE' }) // FK Onwer
sensor: Sensor;
}

@ -0,0 +1,19 @@
import { TimestampedEntity } from 'src/common/entities/timestamped.entity';
import { User } from 'src/users/entities/user.entity';
import { Column, Entity, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm';
import { Sensor } from './sensor.entity';
@Entity()
export class SensorGroup extends TimestampedEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToMany(() => User, (user) => user.sensorGroups)
users: User[];
@OneToMany(() => Sensor, (sensor) => sensor.group)
sensors: Sensor[];
}

@ -0,0 +1,19 @@
import { TimestampedEntity } from 'src/common/entities/timestamped.entity';
import { Column, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn } from 'typeorm';
import { SensorGroup } from './sensor-group.entity';
import { SensorData } from './sensor-data.entity';
@Entity()
export class Sensor extends TimestampedEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToOne(() => SensorGroup, (group) => group.sensors, { onDelete: 'CASCADE' }) // FK Onwer
group: SensorGroup;
@OneToMany(() => SensorData, (data) => data.sensor)
data: SensorData[];
}

@ -0,0 +1,10 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { SensorGroup } from './entities/sensor-group.entity';
import { Sensor } from './entities/sensor.entity';
import { SensorData } from './entities/sensor-data.entity';
@Module({
imports: [TypeOrmModule.forFeature([SensorGroup, Sensor, SensorData])],
})
export class SensorsModule {}

@ -1,10 +1,13 @@
import { TimestampedEntity } from 'src/common/entities/timestamped.entity'; import { TimestampedEntity } from 'src/common/entities/timestamped.entity';
import { Profile } from 'src/profiles/entities/profile.entity'; import { Profile } from 'src/profiles/entities/profile.entity';
import { SensorGroup } from 'src/sensors/entities/sensor-group.entity';
import { import {
Column, Column,
DeleteDateColumn, DeleteDateColumn,
Entity, Entity,
JoinColumn, JoinColumn,
JoinTable,
ManyToMany,
OneToOne, OneToOne,
PrimaryGeneratedColumn, PrimaryGeneratedColumn,
} from 'typeorm'; } from 'typeorm';
@ -29,4 +32,8 @@ export class User extends TimestampedEntity {
@DeleteDateColumn({ type: 'timestamp' }) @DeleteDateColumn({ type: 'timestamp' })
deletedAt?: Date; deletedAt?: Date;
@ManyToMany(() => SensorGroup, (group) => group.users)
@JoinTable() // Join table Owner
sensorGroups: SensorGroup[];
} }

Loading…
Cancel
Save