Signed-off-by: Arthur DANJOU <arthurdanjou@outlook.fr>
This commit is contained in:
2021-08-05 13:41:57 +02:00
parent 405b78846b
commit ed17d86913
18 changed files with 657 additions and 389 deletions

24
app/Models/Announce.ts Normal file
View File

@@ -0,0 +1,24 @@
import {DateTime} from 'luxon'
import {BaseModel, BelongsTo, belongsTo, column, HasOne, hasOne} from '@ioc:Adonis/Lucid/Orm'
import File from "App/Models/File";
import Translation from "App/Models/Translation";
export default class Announce extends BaseModel {
@column({ isPrimary: true })
public id: number
@belongsTo(() => Translation)
public message: BelongsTo<typeof Translation>
@column()
public messageId: number
@hasOne(() => File)
public cover: HasOne<typeof File>
@column.dateTime({ autoCreate: true })
public createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
public updatedAt: DateTime
}

22
app/Models/Profile.ts Normal file
View File

@@ -0,0 +1,22 @@
import {DateTime} from 'luxon'
import {BaseModel, column} from '@ioc:Adonis/Lucid/Orm'
export default class Profile extends BaseModel {
@column({ isPrimary: true })
public id: number
@column()
public age: number
@column()
public hiringStatus: string
@column()
public hiringColor: string
@column.dateTime({ autoCreate: true })
public createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
public updatedAt: DateTime
}

View File

@@ -1,5 +1,6 @@
import { DateTime } from 'luxon'
import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm'
import {DateTime} from 'luxon'
import {BaseModel, column, HasOne, hasOne} from '@ioc:Adonis/Lucid/Orm'
import File from "App/Models/File";
export default class Project extends BaseModel {
@column({ isPrimary: true })
@@ -17,6 +18,9 @@ export default class Project extends BaseModel {
@column()
public url: string
@hasOne(() => File)
public cover: HasOne<typeof File>
@column.dateTime({ autoCreate: true })
public createdAt: DateTime

View File

@@ -1,34 +0,0 @@
import { DateTime } from 'luxon'
import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm'
export default class Song extends BaseModel {
@column({ isPrimary: true })
public id: number
@column()
public author: string
@column()
public album: string
@column()
public title: string
@column()
public type: string
@column()
public device: string
@column()
public duration: number
@column.date()
public releaseDate: DateTime
@column.dateTime({ autoCreate: true })
public createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
public updatedAt: DateTime
}

22
app/Models/Translation.ts Normal file
View File

@@ -0,0 +1,22 @@
import {DateTime} from 'luxon'
import {BaseModel, column} from '@ioc:Adonis/Lucid/Orm'
export default class Translation extends BaseModel {
@column({ isPrimary: true })
public id: number
@column()
public code: string
@column()
public french: string
@column()
public english: string
@column.dateTime({ autoCreate: true })
public createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
public updatedAt: DateTime
}

View File

@@ -0,0 +1,17 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Subscribers extends BaseSchema {
protected tableName = 'subscribers'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.string('email').notNullable()
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,18 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Pictures extends BaseSchema {
protected tableName = 'files'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.string('label').notNullable()
table.string('file_name').notNullable()
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,18 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Posts extends BaseSchema {
protected tableName = 'posts'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.string('slug').notNullable()
table.integer('likes').notNullable()
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,19 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Locations extends BaseSchema {
protected tableName = 'locations'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.string('place')
table.string('left')
table.date('since')
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,20 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Projects extends BaseSchema {
protected tableName = 'projects'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.string('name')
table.string('description')
table.string('url')
table.integer('progress')
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,20 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Forms extends BaseSchema {
protected tableName = 'forms'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.string('name')
table.string('email')
table.string('subject')
table.string('content')
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,36 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
import Hash from "@ioc:Adonis/Core/Hash";
export default class Users extends BaseSchema {
protected tableName = 'users'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.string('username', 255).notNullable()
table.string('email', 255).notNullable()
table.string('password', 180).defaultTo(this.randomPassword()).notNullable()
table.boolean('is_confirmed').defaultTo(false).notNullable()
table.string('remember_me_token').defaultTo(null).nullable()
table.string('confirmation_token').defaultTo(null).nullable()
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
private randomPassword(): string {
let password = ''
const char = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!.:=+-_$*^&@#%ù/àçè()é"'
const size = 64
for (let i = 0; i < size; i++) {
password += char.charAt(Math.random() * char.length)
}
Hash.make(password).then((value => {
password = value
}))
return password
}
}

View File

@@ -0,0 +1,21 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class ApiTokens extends BaseSchema {
protected tableName = 'api_tokens'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').primary()
table.integer('user_id').unsigned().references('id').inTable('users').onDelete('CASCADE')
table.string('name').notNullable()
table.string('type').notNullable()
table.string('token', 64).notNullable()
table.timestamp('expires_at', { useTz: true }).nullable()
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,19 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Translations extends BaseSchema {
protected tableName = 'translations'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.string('code').notNullable()
table.string('french').defaultTo('Traduction manquante')
table.string('code').defaultTo('Missing translation')
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,19 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Profiles extends BaseSchema {
protected tableName = 'profiles'
public async up () {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.integer('age').notNullable()
table.string('hiring_color').notNullable()
table.string('hiring_status').notNullable()
table.timestamps(true, true)
})
}
public async down () {
this.schema.dropTable(this.tableName)
}
}

View File

@@ -0,0 +1,17 @@
import BaseSchema from '@ioc:Adonis/Lucid/Schema'
export default class Projects extends BaseSchema {
protected tableName = 'projects'
public async up () {
this.schema.table(this.tableName, (table) => {
table.integer('cover_id').unsigned().references('files.id').onDelete('CASCADE')
})
}
public async down () {
this.schema.table(this.tableName, (table) => {
table.dropColumn('cover_id')
})
}
}

View File

@@ -22,7 +22,7 @@
"@adonisjs/ally": "^4.1.0",
"@adonisjs/auth": "^8.0.6",
"@adonisjs/bouncer": "^2.2.4",
"@adonisjs/core": "~5.1.8",
"@adonisjs/core": "^5.1.10",
"@adonisjs/lucid": "^15.0.1",
"@adonisjs/mail": "^7.2.1",
"@adonisjs/redis": "^7.0.6",

710
yarn.lock

File diff suppressed because it is too large Load Diff