mirror of
https://github.com/iptv-org/database.git
synced 2025-05-10 03:30:01 -04:00
42 lines
902 B
TypeScript
42 lines
902 B
TypeScript
import { SubdivisionData } from '../types/subdivision'
|
|
import { Dictionary } from '@freearhey/core'
|
|
import { Model } from './model'
|
|
import Joi from 'joi'
|
|
|
|
export class Subdivision extends Model {
|
|
code: string
|
|
name: string
|
|
countryCode: string
|
|
|
|
constructor(data: SubdivisionData) {
|
|
super()
|
|
|
|
this.code = data.code
|
|
this.name = data.name
|
|
this.countryCode = data.country
|
|
}
|
|
|
|
hasValidCountryCode(countriesKeyByCode: Dictionary): boolean {
|
|
return countriesKeyByCode.has(this.countryCode)
|
|
}
|
|
|
|
data(): SubdivisionData {
|
|
return {
|
|
code: this.code,
|
|
name: this.name,
|
|
country: this.countryCode
|
|
}
|
|
}
|
|
|
|
getSchema() {
|
|
return Joi.object({
|
|
country: Joi.string()
|
|
.regex(/^[A-Z]{2}$/)
|
|
.required(),
|
|
name: Joi.string().required(),
|
|
code: Joi.string()
|
|
.regex(/^[A-Z]{2}-[A-Z0-9]{1,3}$/)
|
|
.required()
|
|
})
|
|
}
|
|
}
|